OpenID提供程序为其发现信息不匹配的标识符发出了断言

时间:2012-07-03 18:25:33

标签: asp.net dotnetopenauth

我使用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);

响应 = RelyingParty.GetResponse(clientResponseInfo);

(您可以在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
 },
]

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

依赖方报告提供商正在声明有关标识符的信息,该标识符与OpenID发现产生的标识符不同。

您作为提供者的责任包括确保您的断言与标识符信息匹配。因此,请考虑错误消息中“已发现的端点信息”下的内容,以及为什么它与断言(在其上方)不同。在这种情况下,您的ClaimedIdentifier和ProviderLocalIdentifier URL在断言和发现的数据之间是不同的。这个可能是因为断言标识符上的HTTP GET实际上会在“已发现的端点信息”下生成到URL的HTTP重定向,您需要修复它。