实现OpenID:识别用户

Wim*_*ink 7 .net c# openid authentication dotnetopenauth

我工作的公司想要向外界发布内部网站,但也希望以一种简单的方式识别访问者.某些功能对所有访问者都可见,但大多数访问者必须可见.(并且一些功能仅限于管理员访问者.)虽然管理层正在考虑实施我们自己的身份验证系统,但我建议只使用已有的现有技术,并使用户名/密码的管理远离我们.(因为当我们讨论安全问题时,我们只是业余爱好者.身份验证需要非常好.)

所以我从Google 开始使用OpenID并检查了他们提供的库.看起来很容易使用,我可以获得告诉我用户已通过身份验证的令牌.但是,如何识别此用户,以便将我们的个人资料信息链接到他的ID /令牌/随便?

我知道我错过了一些东西,所以要保持简单:我只需要一些示例,说明如何使用Google验证访问者,然后获取一些可以用来永久链接到此用户的令牌.(因此,没有会话令牌.)然后,此令牌可用于用户填写他/她的个人资料.

And*_*ott 4

由于您的标签表明您的语言是 C#,因此我推荐DotNetOpenAuth。它是免费的,并包含一些示例,向您展示如何获取令牌(在 OpenID 术语中称为声明标识符),您可以使用该令牌来区分用户。

要获取声明的标识符(您正在查找的永久标识符),如果您使用OpenIdTextBoxOpenIdLogin控件,只需处理其 LoggedIn 事件并获取 e.ClaimedIdentifier 属性。如果您以编程方式执行此操作(无控件),则该OpenIdRelyingParty.GetResponse()方法将返回一个IAuthenticationResponse接口,该接口具有ClaimedIdentifier您可以获得的属性。

然后,您可以实现一个 ASP.NET RoleProvider(实际上非​​常简单),它允许某些 OpenID 声明标识符属于管理员角色,从而允许您的标准 ASP.NET 授权技术根据个人的身份验证方式逐步锁定他们。