2011-08-04 7 views
1

DotNetOpenAuthを使用してOpenIdプロバイダを実装しようとしています。私は2つのサンプルを一緒に使用して、MVCの返信パーティーとMVCプロバイダーを使用しています。ホスティング頼るhttp://localhost:4864/OpenId/ProviderOpenID要求がOpenIdProvider.GetRequestで認識されていません

プロバイダがでホストされているhttp://localhost:54347/User/Login

私はグーグル(https://www.google.com/accounts/o8/id)でそれを試みたが、私は認証ました。私はhttp://localhost:4864/OpenId/Providerを試しました。依拠当事者は、openIdエンドポイントが見つからなかったと述べた。私は、プロバイダにブレークポイントを設定すると、このコードはnullを返します。

IRequest request = OpenIdProvider.GetRequest() 

ので、リクエストがnullのときにコメントがこれです:だから私は私の問題は、プロバイダ側にあると思いますNo OpenID request was recognized. This may be a user that stumbled on the OP Endpoint.

。これを解決するために何をする必要がありますか?

+0

これはあなたがこれを理解しましたか? – labroo

答えて

-1

セキュリティ上の理由から、DotNetOpenAuth RPではデフォルトでhttp://localhost/で始まるOpenIDが許可されません。あなたのテストの目的のために、それはあなたのために働くようにあなたがローカルホストをホワイトリストに登録することができます

<dotNetOpenAuth> 
    <messaging> 
     <untrustedWebRequest> 
      <whitelistHosts> 
       <!-- since this is a sample, and will often be used with localhost --> 
       <add name="localhost" /> 
      </whitelistHosts> 
     </untrustedWebRequest> 
    </messaging> 
</dotNetOpenAuth> 
+0

これは私のRPプロジェクトに既に入っています –

+0

URLが 'http:// localhost/openidprovider/openid/provider'のローカルiisにプロバイダを接続していて、デバッグ時にオープンIDリクエストが見つかりませんでした。 –

0

をdotnetopenauthサンプルでは、​​ログイン画面がプロバイダを要求したときに、あなたがサンプルMVCプロバイダを使用する場合、識別子はで使用しますあなたのケースでは、私はサンプルMVCプロバイダを使用していた、私にとってhttp://localhost:4864/

なくhttp://localhost:4864/OpenId/Provider

0

になります。そのHomeController[Authorize]属性を持っていました。これは、xrds要求が失敗し、「シーケンスに要素が含まれていません」という例外が報告され、「No OpenID endpoint found」が報告されました。 [Authorize]属性を削除すると、xrds要求が成功し、Visual Studioの別のインスタンスでデバッグ中のサイトのOpenIDを使用して、Visual Studioの1つのインスタンスでデバッグ対象のサイトにログインできます。

関連する問題