Was ist das Geheimnis, wenn ClaimsResponse mit DotNetOpenId funktioniert?

8

Was ist das Geheimnis, wenn ClaimsResponse mit DotNetOpenId funktioniert?

Zum Beispiel in diesem Codebeispiel (aus Scott Hanselmans Blog ) das ClaimsResponse-Objekt sollte viele nette kleine Dinge wie 'Nickname' und 'E-Mail-Adresse' haben, aber das ClaimsResponse-Objekt selbst ist 'null':

%Vor%

Zuerst dachte ich, dass es daran lag, dass ich nicht mit einem 'ClaimsRequest' zum Provider weitergeleitet habe, aber die Verwendung dieses Codes zur Weiterleitung an den OpenId-Provider hilft immer noch nicht:

%Vor%

Was mache ich falsch? Oder haben andere Entwickler den gleichen Schmerz erfahren?

    
Dan Esparza 15.11.2008, 20:07
quelle

6 Antworten

4

Ihr Code sieht gut aus. Beachten Sie jedoch, dass die von Ihnen verwendete Sreg-Erweiterung nicht von allen OPs unterstützt wird. Wenn das OP, mit dem Sie sich authentifizieren, dies nicht unterstützt, ist die Antworterweiterung, wie Sie sehen, null. Ein Null-Check ist also immer eine gute Idee.

myopenid.com unterstützt sreg, wenn Sie nach einem OP suchen, gegen das getestet werden kann.

    
Andrew Arnott 17.12.2008, 04:22
quelle
6

Ich weiß nicht, ob Sie das Problem gelöst haben oder nicht, aber ich fand die Lösung nach vielen Stunden des Kampfes. Eigentlich müssen Sie Ihre web.config-Datei ändern, um E-Mail und Fullname zu beanspruchen hier ist web.config was für mich funktioniert. Ich habe es vom nerddinner-Projekt heruntergeladen. Eigentlich habe ich alles außer web.config kopiert und ich bekam das email Feld nicht. Später fand ich etwas anderes falsch. Ich habe web.config vom nerddinner-Projekt kopiert und alles hat funktioniert.

Hier ist die Datei, wenn Sie nicht zum nerddinner Projekt gehen wollen.

%Vor%     
Parminder 04.12.2010 18:01
quelle
2

Mit der neuesten Version von DotNetOpenId scheint dieser Code für mich gut zu funktionieren:

%Vor%

bei der Rückkehr vom Anbieter:

%Vor%

PS: Ich benutze MVC, nicht WebForms.

    
OJ. 15.11.2008 22:54
quelle
2

Ich habe

benutzt %Vor%

statt

%Vor%

Und in der Antwort versuchen

%Vor%

einfach, anstatt auf die Ansprüche zuzugreifen. Das hat bei mir im ASP.Net für Google funktioniert.

Das Problem in ASP.Net ist, dass die Anforderung nicht vollständig gesendet wird, wenn Sie ClaimsRequest verwenden, wenn Sie Fiddler verwenden. und die Antwort wird auch nicht korrekt abgerufen, Sie müssen auf direkte Parameter von Request.params zugreifen, die alle dort sind.

    
M.Hefny 12.03.2011 23:36
quelle
1

Keine der oben genannten Funktionen funktionierte für mich (mit PayPal Access als Kennung) in C #

Das Folgende funktionierte für mich:

%Vor%     
Ian Cullen 05.12.2011 19:58
quelle
0

Ich könnte die Parameter korrekt nach dem folgenden Update in web.config erhalten, das ich aus einem Sample kopiert habe.

%Vor%

unter <configsections>

und füge diese nur hinzu

%Vor%     
M.Hefny 17.03.2011 11:08
quelle