1

ASP.NET MVC でDotNetOpenAuthを使用して、証明書利用者 (私が取り組んでいる Web サイト) を実装しようとしています。現在のバージョン 3.3.1 を使用しています。

含まれている MVC サンプルを使用すると、OpenIdRelyingParty クラスが、ユーザーが指定した ID に基づいて、myopenid.com や Yahoo などの一部のオープン ID プロバイダーを自動的に認識してリダイレクトできることがわかります。

OpenIdRelyingParty に Windows Live/Hotmail と Google Open ID で同じことをさせるにはどうすればよいですか?

アップデート

私の問題は、私が Open ID とは何かを明確に理解していないことかもしれません。

  • Open ID として Yahoo のメール アドレスを入力すると、Yahoo のログイン ページにリダイレクトされます。涼しい。

  • 固有の myopenid.com 名を入力すると、myopenid.com ログイン ページにリダイレクトされます。涼しい。

  • しかし、Windows Live メール アドレス、Hotmail アドレス、または Gmail アドレスに対して同じことを行うと、「Open ID エンドポイントが見つかりません」というエラーが表示されます。

Open ID が URL でなければならない場合、なぜ Yahoo の電子メール アドレスを使用しても機能するのでしょうか? これは、OpenIdRelyingParty クラスが一般的な電子メール アドレスをプロバイダーの URL にマップするインテリジェンスを持っているためだと思いました。

4

2 に答える 2

2

myopenid.com や他の多くのサイトは実際の OpenID プロバイダーであるため、"自動的に" 機能します。

電子メール アドレスは OpenID 識別子ではありませんが、OpenID 識別子の解析規則により、電子メール アドレスのドメイン部分が「OP 識別子」である場合、電子メール アドレスはたまたま機能します。「yahoo.com」自体は OpenID 識別子であるため、@yahoo.com で終わるすべての電子メール アドレスも同様に機能します。

Gmail と Live ID のメールと URL が機能しない理由は、Live ID が (まだ) OpenID プロバイダーではないためです。残念ながら、Gmail の OP Identifier は単に「gmail.com」ではありません。というか、https://www.google.com/accounts/o8/id マジで。長いURLです。ただし、それを入力すると (または単にtinyurl.com/googop)、Gmail (または任意の Google) アカウントを使用してログインできます。

于 2010-01-11T14:55:01.460 に答える
1

OpenID プロバイダーが完全な OpenID プロバイダーであると仮定すると、ユーザーが OpenID フィールドに入力する URL はリダイレクトに十分です (たとえば、http://blowdart.openid.example )。特別なことをする必要はありません。

于 2010-01-11T09:58:09.667 に答える