实施OpenID:识别用户
我公司的工作是希望向外部世界发布一个内部网站,但也想通过一些简单的方式来识别访问者。 某些功能对所有访问者都是可见的,但大多数必须对经过验证的访问者可见。 (一些功能仅限于管理访问者。)虽然管理层正在考虑实施我们自己的身份验证系统,但我建议只使用现有的已有技术,并使用户名/密码的管理远离我们。 (因为当我们谈论安全性时,我们只是业余爱好者,认证需要很好。)
所以我开始使用Google的OpenID并检查他们提供的库。 看起来很容易使用,我可以得到令牌,告诉我用户已通过身份验证。 但是,如何识别此用户,以便我们可以将我们的个人资料信息链接到他的ID /令牌/无论如何?
我知道我错过了一些东西以便保持简单:我只需要一些示例来说明如何使用Google对访问者进行身份验证,然后获取一些令牌,以便我可以永久链接到此用户。 (因此,没有会话令牌。)然后可以使用该令牌填充他/她的个人资料。
由于你的标签建议你的语言是C#,我推荐DotNetOpenAuth。 它是免费的,并且包含了一些示例,这些示例将向您展示如何让您的令牌(使用OpenID术语称为声明标识符),您可以使用它来区分用户。
要获得声明的标识符(您要查找的永久标识符),如果您使用OpenIdTextBox
或OpenIdLogin
控件,只需处理其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?