单点登录查询



我通过阅读这篇文章实现了单点登录:

http://www.codeproject.com/KB/web-security/aspnetsinglesignon.aspx

但是,从可扩展性的角度来看,我有一个问题。如果我在一台机器上托管第一个应用程序,在另一台机器上托管第二个应用程序,上述方法是否有效?我现在没有两个不同的服务器,否则我就自己验证了。有人有经验吗?

谢谢。

是的,只要您在机器中定义了加密和验证密钥,它就可以工作。两个服务器上的配置完全相同。如果你忘记了这一点,它将无法工作,因为在一个服务器上加密的cookie将无法在另一个服务器上解密。

文章建议将这些键放在Web.config中。这是一种有效的方法,但如果您需要在多个网站上进行SSO,则最好在machine.config中定义它,前提是您可以控制此功能,并且同一服务器中的所有应用程序都意味着共享此功能。

除了加密和验证密钥匹配之外,还需要两台机器上的cookie名称相同。

如果您的应用程序和服务器可能是.net3.5/.net4.0和iis6/iis7的混合,您还应该显式地声明哈希算法。微软通过将默认哈希算法从SHA1更改为SHA256,引入了从3.5到4.0的突破性变化。如下所示:

http://geekswithblogs.net/davidhoerster/archive/2010/06/15/asp.net会员-密码散列- net - 3.5 - 4. - net - aspx

,但本质上,你可能希望在你的网页中有以下内容。Config or machine.config:

<system.web>
  <machineKey validation="SHA1" />
  ...
</system.web>
<system.web>
  <membership defaultProvider="myMembership" hashAlgorithmType="SHA1">
  ...
</system.web>

最新更新