Asp.net 2.0中单点登录(SSO)的实现

Masoud的《Understanding Single Sign-On in ASP.NET 2.0》http://aspalliance.com/1545_Understanding_Single_SignOn_in_ASPNET_20.all
讨论了在Asp.net 2.0的程序场中,实现SSO的一种简便方式,如果你的企业的所有需要实现SSO的系统都是基于asp.net2.0实现的,那么你可以用这种方式,文中还有Demo下载[Download Sample]
在Asp.net 2.0的Web.config文件中的<system.web>节中有一个<machineKey>节点,需要实现SSO的程序保持<machineKey>的同容相同即可
<machineKey       
validationKey="282487E295028E59B8F411ACB689CCD6F39DDD21E6055A3EE480424315994760ADF
21B580D8587DB675FA02F79167413044E25309CCCDB647174D5B3D0DD9141"

decryptionKey="8B6697227CBCA902B1A0925D40FAA00B353F2DF4359D2099"      
validation="SHA1"/>

同时设置成为form认证,把登录指向同个页面
<authentication mode="Forms">
<forms loginUrl="http://localhost/Aspalliance1/login.aspx" name=".ASPXAUTH"/>
</authentication>

。由于<machineKey>中包含了敏感信息,所以作者建议实际应用当中应该把<machineKey>进行加密存储,用的时候再解密,作者在演示程序中还提供了加密解决的函数。

刚看到宝玉的对《Understanding Single Sign-On in ASP.NET 2.0》一文的补充 文中谈到了保持<machineKey>相同实现SSO的原理是基于同一域下的虚拟目录的cookie是可以共享的,然后MachineKey的一致,确保了cookie的解密和解密的结果是一致的。这仅是解决了同一域下的虚拟目录不同的SSO的问题,如果对于同一主域不同子域之间的cookie共享,需要设置如下
<authentication mode="Forms"> <forms loginUrl="login.aspx" name=".ASPXAUTH" domain="joycode.com"/> </authentication>
而对于不同主域之间,这种方法是行不通的。
牛人真多呀,呵呵!


1056405.html?type=1

shore 2008-01-28 16:39 发表评论

转载于:https://www.cnblogs.com/hotsoho.net/archive/2008/01/28/1206562.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值