.net 怎样实现单点登录
有做过的朋友帮下,急用, 展开
你好 老系统不让改 老系统是以前别人做的 没有源码 。这样的能实现单点登录么?
所谓单点登录(Single Sign On就是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。其实对于程序员在技术上要实现就得就是多个不同域名间共享cookie的问题。
最近在为ERP添加一个部署在另一台机器上,链接到原有老系统中的子项目,调用原有老项目中的Login实现单点登录,尝试了N次屡试不成,最后确定问题,是,.net2.0与4.0中对cookie的加密/解密方法由此差异,于是经过研究,重写实现了一个可以在不同.net版本中实现单点登录的简单方法。
代码:
protected void btnLogin_Click(object sender, EventArgs e)
{
//认证开票,跳转到原始请求页面
System.Web.Security.FormsAuthentication.RedirectFromLoginPage("ejiyuan", false);
}
配置文件:
<!--访问权限控制-->
<authorization>
<deny users="?"/>
</authorization>
<!--身份认证方式-->
<authentication mode="Forms">
<forms name=".ASPNET" protection="All" enableCrossAppRedirects="true" loginUrl="Login.aspx" timeout="2880" path="/" domain=".local.com"/>
</authentication>
<!--验证算法-->
<machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="SHA1" decryption="3DES" /> <compilation debug="true"/>