2010-03-01 7 views
15

Ich versuche, herauszufinden, wie DotNetOpenAuth zu bekommen (http://www.dotnetopenauth.net/) in meiner webforms App arbeitenDotNetOpenAuth: Webforms, Getting Started

Ich verstehe nicht, wo man anfangen soll. Ich habe einen OpenIDSelector auf meinem Login.aspx, mit dem Sie Google oder Yahoo auswählen können. Sie können eine auswählen, dann erscheint ein Popup und Sie können sich anmelden. Sobald Sie sich anmelden, hängt das Programm, weil es versucht, etwas mit einer Datenbank zu tun ???

Kann ich nicht einfach ein Steuerelement (wie den OpenIDSelector) verwenden und zurück, dass der Benutzer authentifiziert wurde, ihre ClaimedID erhalten und den Rest selbst behandeln?

EDIT: Versuchen Sie mit OpenID in Webforms zu beginnen? Hier gehen ...

https://github.com/DotNetOpenAuth/DotNetOpenAuth/wiki/Creating-an-openid-relying-party-%28programatically%29

Antwort

0

1 - behauptet Kennung ist das, was Sie suchen. Das Problem ist, dass Google und dergleichen "gerichtete Identität" verwenden, was bedeutet, dass der beanspruchte Bezeichner mit dem Bereich verknüpft wird, aus dem Sie kommen. Nettoergebnis für Sie - derselbe Benutzer kann unter mehreren verschiedenen beanspruchten Bezeichnern durchkommen.

2 und 3 weiß ich nicht - ich gehe davon aus, dass dies einige Out-of-the-Box-Funktionalität DNOA ist, aber ich habe nicht damit gespielt.

4 - nicht das ich gefunden habe. dnoa deckt alle Fälle ab, über die Sie sich Gedanken machen müssen.

+0

Ich habe keine Ahnung, wie man das ohne Vorlage-Projekt, das wirklich aufgebläht scheint, geht. Sie kennen eine Ressource? – Jason

+0

yeah - auf der DNOA-Site gibt es viele Dokumentationen. sieh Andrews Antwort. – kolosy

5

Sie müssen die Projektvorlage nicht verwenden. Sie können das OpenIDSelector-Steuerelement in jede Web-App einfügen und es wird einfach im minimalistischen "gib mir den Benutzernamen" aus der Box heraus funktionieren. Es gibt keine SQL-Abhängigkeiten wie auch immer in der DotNetOpenAuth-Bibliothek. Behandeln Sie einfach das OpenIdSelector.LoggedIn Ereignis und Sie erhalten den gewünschten Benutzernamen.

Die Projektvorlage, so aufgebläht wie es Ihnen erscheinen mag, geht davon aus, dass Sie tatsächlich Benutzerdaten speichern müssen und dass Sie eine angemessene Anmeldung und Kontoverwaltungserfahrung bereitstellen möchten. Es funktioniert auch in Webfarmen und Cloud-gehosteten Umgebungen. Wenn Sie bei Null beginnen, ist dies eine gute Möglichkeit, um loszulegen, obwohl natürlich einige Code, mit denen es kommt, weniger gelten als andere, weshalb Sie die Quelle haben - so können Sie es ändern.

Ja, die Projektvorlage enthält eine Abhängigkeit von einer Datenbank. Es verwendet Linq-to-Entities, so dass jede Datenbank mit einem Entities-Provider funktioniert - nicht nur SQL Server. Und es kommt mit dem Schema für diese Datenbank eingebaut. Führen Sie einfach setup.aspx und es sollte die Datenbank für Sie in Ihrer lokalen SQLExpress-Installation erstellen.

+1

http://www.dotnetopenauth.net/developers/code-snippets/programmatic-openid-relying-party/ ist was ich gesucht habe. Genau das, was ich brauchte. Leider sehe ich keinen offensichtlichen Weg, es von dotnetopenauth.net zu Hause zu finden (ich fand es auf meiner 500. Google-Suche, die versucht herauszufinden, wie man es zum Laufen bringt). Dies wäre, was ich mir vorstellen würde, wäre in einem "Erste Schritte" Abschnitt. – Jason

+1

Gutes Feedback, CccTrash. Ich werde einen Weg finden, das besser erkennbar zu machen. –