web服务的OpenId实现-需要提示/帮助

web服务的OpenId实现-需要提示/帮助,openid,dotnetopenauth,Openid,Dotnetopenauth,假设我正在尝试在使用web服务的n层web站点中实现依赖的OpenId。请告诉我是否有些步骤看起来很奇怪 1我希望用户在文本框中输入他们的OpenId url。例: 2然后用户单击submit,输入的Url将使用OpenIDAPI发送到我的web服务。通过服务器上的OpenIDAPI,我可以构建一个合适的OpenId请求 3用户收到他应该在其中进行身份验证的Url 4用户被重定向到他们的提供商,登录,被重定向回我的网站 这里的混乱:现在,第2-4步发生在用户和提供者之间。在这些步骤中不涉及我的w

假设我正在尝试在使用web服务的n层web站点中实现依赖的OpenId。请告诉我是否有些步骤看起来很奇怪

1我希望用户在文本框中输入他们的OpenId url。例:

2然后用户单击submit,输入的Url将使用OpenIDAPI发送到我的web服务。通过服务器上的OpenIDAPI,我可以构建一个合适的OpenId请求

3用户收到他应该在其中进行身份验证的Url

4用户被重定向到他们的提供商,登录,被重定向回我的网站

这里的混乱:现在,第2-4步发生在用户和提供者之间。在这些步骤中不涉及我的web服务


我希望用户在此时将他们想要的用户名和OpenId发送回web服务。问题是我如何才能知道用户/客户端没有篡改它们?

有两种方法可以验证用户是否已正确身份验证

在您自己和OpenID提供程序之间建立共享秘密。当用户登录到提供程序时,它将与他们共享该秘密,然后他们将与您共享该秘密,然后您可以根据原始共享秘密验证该秘密

通过OpenIDs检查认证规范。在用户向您传递信息以验证信息后进行此调用

我想知道你指的是不是web服务。Web服务提供了一个Web URL的编程API,这些URL不是针对浏览器使用的。OpenID在这种情况下不起作用,尽管OpenID+OAuth的混合版本当然可以。