实施OpenID:识别用户

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

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

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


由于你的标签建议你的语言是C#,我推荐DotNetOpenAuth。 它是免费的,并且包含了一些示例,这些示例将向您展示如何让您的令牌(使用OpenID术语称为声明标识符),您可以使用它来区分用户。

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

然后你可以实现一个ASP.NET RoleProvider(真的很简单),它允许一些OpenID声明的标识符属于一个管理员角色,允许你的标准ASP.NET授权技术根据他们的认证方式逐步锁定个人。

链接地址: http://www.djcxy.com/p/42739.html

上一篇: Implementing OpenID: identifying users

下一篇: How to inject dependencies into custom FilterAttributes?