2011-10-07 2 views
3

J'essaye d'implémenter DotNetOpenAuth, sans utiliser un fournisseur OpenId. Obtenir un RequestToken ne fonctionne pas sur ma mise en œuvre. J'appelle une méthode appelée ServiceProvider.ReadRequest(). C'est le IServiceProviderTokenManager.GetRequestToken(string token). À ce stade, aucun RequestToken n'est trouvé, car je m'attendais à ce que cette méthode crée un RequestToken. Mais créer un RequestToken est géré par la méthode StoreNewRequestToken. Quand cette méthode est appelée? Ou comment puis-je appeler cette méthode?DotNetOpenAuth: quand StoreNewRequestToken est-il appelé?

+0

DotNetOpenAuth a au moins 5 scénarios majeurs (OpenID Provider étant un seul). Pouvez-vous ajuster votre question pour dire ce que vous essayez de faire au lieu de ce que vous n'essayez pas de faire? –

Répondre

1

Il semble que votre code hôte OAuth SP soit mal écrit ou que le consommateur fournisse éventuellement un jeton d'une tentative antérieure. S'il vous plaît activate logging et ajouter des journaux à votre question.

Je crois DotNetOpenAuth appelle votre méthode StoreNewRequestToken lorsque vous transmettez réellement votre réponse à la consommation à l'aide ServiceProvider.PrepareUnauthorizedTokenMessage et l'envoi de son résultat en utilisant ServiceProvider.Channel.Send. Avant cela, je ne pense pas que DNOA devrait appeler votre GetRequestToken encore parce que le consommateur ne devrait avoir aucun jeton à essayer avec - ainsi ma suggestion plus tôt que le consommateur emploie probablement un vieux jeton (ou un mauvais fonctionnement).

+0

Merci d'avoir répondu, même si ma question n'était pas si claire. Je pense vraiment que cela me pousse dans la bonne direction. Comme je suis encore en train de développer, il se peut que mon implémentation soit correcte, mais je lance un appel avec un en-tête OAuth incorrect. Je vais me renseigner. – Jacco

+0

Oui, j'ai foiré mon en-tête et j'envoyais un jeton. Merci de m'avoir mis dans la bonne direction. – Jacco

Questions connexes