And*_*ena 5 .net c# dotnetopenauth
每个OpenId提供商都有一个提供商Url(例如Google:https://www.google.com/accounts/o8/id)
使用OpenIdRelyingParty.CreateRequest我成功设法将用户重定向到Google提供商Url并接收提供商回调.一切都很好.
现在我正在尝试实现我自己的简单OpenId提供程序(我希望在我的示例中充当Google).DotNetOpenAuth有一个名为OpenIdProviderWebForms的提供程序演示.在过去的4或5个小时内,我一直尝试使用我设法在Google上连接的相同演示连接到它.第一:我不清楚我应该调用哪个URL.我尝试了所有Urls(server.aspx,provider.ashx ...),并且所有这些都触发了异常"找不到OpenID端点".所有配置似乎都很好.
如何实现简单的OpenId提供程序?我应该在哪个URL中调用OpenRelyingParty.CreateRequest?
And*_*ott 16
首先让我们建立一些术语:
的User-supplied identifier是,在实际类型(或通过点击在RP预定按钮触发)触发OpenID查找用户发生的字符串.它没有规范化,并且永远不应该用于表示数据库中的用户,因为它不安全或不唯一,但它是一个必要的起点.对此标识符的发现可能是a claimed identifier或a OP Identifier.示例:yahoo.com,myopenid.com和andrewarnott.myopenid.com
这Claimed Identifier是用户"控制"或用作其身份的OpenID标识符.它可能是也可能不是 URL(它可能是XRI).来自OP的肯定断言将始终是声明的标识符(即使发现以OP标识符开始).示例:https://andrewarnott.myopenid.com/
" OP Identifier或OpenID提供者标识符"是RP可以执行发现以开始identifier select流程的OpenID标识符,其中RP还不知道用户的声称标识符将是什么.例如:https://me.yahoo.com/,http://www.myopenid.com/和https://www.google.com/accounts/o8/id
这OP Endpoint是RP将用户重定向到的实际URL,以便对用户进行身份验证,并用于建立共享关联或对使用OP私有关联的断言执行直接验证.例如:HTTP://localhost/server.aspx,HTTP://localhost/provider.ashx,https://www.google.com/accounts/o8/ud(注意结尾,而不是ID的UD)
因此,在所有背景下,您的OpenIdRelyingParty.CreateRequest呼叫应该接收用户提供的标识符,该标识符也可以是声明的标识符或OP标识符.它不应该是OP端点.例如,您可以传入:
openIdRelyingParty.CreateRequest("http://localhost/sampleop/")
Run Code Online (Sandbox Code Playgroud)
要么
openIdRelyingParty.CreateRequest("http://localhost/user.aspx?username=bob")
Run Code Online (Sandbox Code Playgroud)