OpenID プロバイダーが別の URL に戻るようにするOpenIdRelyingParty.CreateRequest(Identifier userSuppliedIdentifier, Realm realm, Uri returnToUrl)
場合は、認証要求を作成するときにメソッドを使用する必要があります。
ただし、通常、OpenID プロバイダーが、アプリ内でログイン シーケンスを開始した URL にリダイレクトされることは望ましくありません。応答を適切に処理するために、OpenID 認証を開始した時点に戻る必要があります。アプリの残りのロジックから OpenID レイヤーをカプセル化するのに役立ちます。
次に例を示します。
私の ASP.NET MVC アプリには、ログイン要求を処理User
するアクションを持つコントローラーがあります。Authenticate
アクションAuthenticate
チェック. OpenIdRelyingParty.Response
の場合null
、アクションは を呼び出しますRedirectToProvider
。プロバイダーは同じアクションに戻りますRespons.Status
。ユーザーがログイン シーケンスを開始したページに戻るためAuthenticationStatus.Authenticated
に使用する場合。FormsAuthentication.RedirectFromLoginPage
(openid.Response.ClaimedIdentifier, true)
ただし、ステータスがAuthenticationStatus.Failed
「AuthenticationStatus.Canceled」または「AuthenticationStatus.Canceled」の場合は、この問題を解決するための手順をユーザーに提供できます。入力ミスの場合は OpenID を修正するか、代わりにユーザー名/パスワードでログインするように提案できます。(同じ ID に対して OpenID とユーザー名/パスワード認証の両方をサポートしています)
私のログインボックスはすべてのページにあります。OpenID プロバイダーがログイン要求を開始したページにリダイレクトした場合、そのページは失敗を適切に処理できない可能性があります。