1

DotNetOpenAuth.netのサンプルコードを使用して、独自のOpenIDプロバイダー(OpenIDProviderWebForm)になりました。すべてが正常に機能し、NerdDinnerに対してOPをテストできました。今私は--->のように識別子をカスタマイズしたい

http://www.mydomain.com/user.aspx/Hash(Username+PrivateKey)~Username

すべてがOP側で機能しますが、アプリが実行しようとするとNerdDinnerアプリケーションで機能します

HttpRequestInfo clientResponseInfo = new HttpRequestInfo( "GET"、auth、auth.PathAndQuery、headers、null);

response = RelyingParty.GetResponse(clientResponseInfo);

(これらの2行のコードは、NerdDinnerのAuthController.csにあります)

応答には以下のエラーが含まれています。

The OpenID Provider issued an assertion for an Identifier whose discovery information did not match.   
Assertion endpoint info:  
    ClaimedIdentifier: http://localhost:57571/user.aspx/76208371132EC7F7A37472C8B4CC2CC37A05B707~sohail 
    ProviderLocalIdentifier: http://localhost:57571/user.aspx/76208371132EC7F7A37472C8B4CC2CC37A05B707~sohail         
    ProviderEndpoint: http://localhost:57571/server.aspx
    OpenID version: 2.0
    Service Type URIs: 
Discovered endpoint info: [
{
    ClaimedIdentifier: http://localhost:57571/user.aspx/EA467E35736AC22EB60C04C2E9D9594263B60ECB~sohail     
    ProviderLocalIdentifier: http://localhost:57571/user.aspx/EA467E35736AC22EB60C04C2E9D9594263B60ECB~sohail   
    ProviderEndpoint: http://localhost:57571/server.aspx
    OpenID version: 2.0
    Service Type URIs:
        http://specs.openid.net/auth/2.0/signon
        http://openid.net/extensions/sreg/1.1
}, {
    ClaimedIdentifier: http://localhost:57571/user.aspx/EA467E35736AC22EB60C04C2E9D9594263B60ECB~sohail     
    ProviderLocalIdentifier: http://localhost:57571/user.aspx/EA467E35736AC22EB60C04C2E9D9594263B60ECB~sohail   
    ProviderEndpoint: http://localhost:57571/server.aspx
    OpenID version: 1.0
    Service Type URIs: 
        http://openid.net/signon/1.0
        http://openid.net/extensions/sreg/1.1
 },
]

誰か助けてくれませんか?

4

1 に答える 1

1

証明書利用者は、プロバイダーが、OpenIDディスカバリーが同じ識別子について生成するものと一致しない識別子に関する情報をアサートしていることを報告しています。

プロバイダーとしてのあなたの責任には、アサーションが識別子情報と一致することを確認することが含まれます。したがって、エラーメッセージの「検出されたエンドポイント情報」の下にあるものと、それがアサートされたもの(その上)と異なる理由を検討してください。この場合、ClaimedIdentifierとProviderLocalIdentifierのURLは、アサートされたデータと検出されたデータで異なります。これ、アサートされた識別子のHTTP GETが、「検出されたエンドポイント情報」の下のURLへのHTTPリダイレクトを実際に生成するためである可能性があります。これは、修正する必要があります。

于 2012-07-04T15:12:53.330 に答える