2010-12-12 53 views
0

J'ai téléchargé DotNetOpenAuth-3.5.0.10259 et essayé d'exécuter les échantillons, en particulier l'échantillon OAuthClient et j'ai réussi à le faire fonctionner avec facebook (VS2010). Je peux voir "Bienvenue, [mon nom]" après avoir autorisé l'accès à Facebook.Problème avec dotnetopenauth client.ProcessUserAuthorization()

Le problème survient lorsque j'essaie de l'utiliser dans un autre projet. Je reçois un "Pas de surcharge pour la méthode 'ProcessUserAuthorization' prend '0' arguments" et "Aucune surcharge pour la méthode 'RequestUserAuthorization' prend '0' arguments".

C'est fondamentalement le même code, que je trouve très bizarre puisqu'il fonctionne sur l'échantillon inclus mais ne compilera pas dans l'autre projet.

Qu'est-ce que j'ai manqué?

protected void Page_Load (expéditeur d'objet, EventArgs e) {

d'autorisation IAuthorizationState = client.ProcessUserAuthorization();
si (autorisation == null) {

// Déclencher demande d'autorisation
client.RequestUserAuthorization();
}

readonly private static FacebookClient client = new FacebookClient
{
ClientIdentifier = ConfigurationManager.AppSettings [ "facebookAppID"],
ClientSecret = ConfigurationManager.AppSettings [ "facebookAppSecret"],
};

La classe FacebookClient provient du projet DotNetOpenAuth.ApplicationBlock dans les exemples inclus dans le téléchargement de la version 3.5.0.10259.

+0

Je pense que la réponse se situera dans une partie du code que vous n'avez pas posté, pouvez-vous fournir plus? Quel est le type de l'objet "client" dans votre code? Est-ce exactement le même type dans l'exemple? (pas un dérivé ou un type de base). –

+0

J'ai mis à jour le code ci-dessus pour inclure la définition de "client" – Andy

Répondre

1

La seule chose que je peux deviner est qu'il manque des définitions de surcharge dans les bibliothèques. J'ai vécu le même problème que vous décrivez, mais dans mon cas, je n'ai pas pu compiler les échantillons du tout.

L'astuce cependant, est de passer simplement dans un NULL pour le paramètre de demande, ce qui semble fonctionner:

IAuthorizationState authorization = client.ProcessUserAuthorization(null); 

Notez également que vous pouvez exécuter le même problème de surcharge manquant avec la méthode « RequestUserAuthorization » . De même, vous pouvez également passer des valeurs nulles pour chacun des trois paramètres si vous ne voulez pas les envoyer:

client.RequestUserAuthorization(null, null, null); 

Bonne chance!

+0

Dans mon cas, cela ne fonctionne pas. –