2010-07-21 5 views
1

Je suis en train de valider à l'aide des paramètres:Comment puis-je valider le jeton OpenId en C#?

"openid.mode = check_authentication"
+ "& openid.assoc_handle =" + txtAssocHandle.Text
+ "& openid.response_nonce =" + HttpUtility.UrlEncode (txtNonce.Text)
+ "& openid.op_endpoint =" + txtEndpoint.Text
+ "& openid.sig =" + txtSignature.Text
+ "& openid.signed = mode, l'identité, return_to";

et il retourne

is_valid: false ns: http://specs.openid.net/auth/2.0

ce que je fais mal ici? les champs txt sont remplis avec des valeurs de réponse de connexion

Répondre

0

Votre argument openid.signed doit être exactement ce que l'OP a envoyé à votre RP plutôt que cette liste incomplète codée en dur de 3 paramètres, par exemple. Tous vos arguments doivent également être codés en URL, pas seulement votre nom.

Il y a beaucoup plus à valider qu'un jeton OpenID que de simplement le renvoyer à l'OP en utilisant le "mode bête". Qu'essayez-vous de faire? Avez-vous envisagé d'utiliser un OpenID library? Sérieusement, obtenir OpenID correctement (c'est-à-dire sécurisé et interopérable) est un gros travail. Bien plus grand que l'assemblage de la bonne chaîne de requête. :)

+0

Je souhaite que l'utilisateur se connecte, puis je prends le jeton, le passe à un service Web, puis le service Web doit valider ce jeton. J'ai essayé cette bibliothèque, mais je n'ai trouvé aucune aide pour valider le jeton. – tiagodll

+0

Le transmettez-vous à un service Web * juste * pour valider le jeton ou parce que vous utilisez le jeton pour autoriser une demande effectuée au nom de l'utilisateur? –

+0

J'utilise le jeton comme paramètre pour chaque méthode pour vérifier si l'utilisateur est autorisé à accéder à cette méthode. – tiagodll