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);

响应= 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
 },
]

有人可以帮助我吗?

4

1 回答 1

1

依赖方报告 Provider 正在断言有关标识符的信息与 OpenID 发现生成的有关同一标识符的信息不匹配。

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

于 2012-07-04T15:12:53.330 回答