如何在不同.net版本实现单点登录
经过研究 重写实现了一个可以在不同 net版本中实现单点登录的简单方法 现在和大家分享一下 不足之处还望见谅 ?
所谓单点登录(Single Sign On就是在多个应用系统中 用户只需要登录一次就可以访问所有相互信任的应用系统 其实对于程序员在技术上要实现就得就是多个不同域名间共享cookie的问题
最近在为ERP添加一个部署在另一台机器上 链接到原有老系统中的子项目 调用原有老项目中的Login实现单点登录 尝试了N次屡试不成 最后确 定问题 是 net 与 中对cookie的加密/解密方法由此差异 于是经过研究 重写实现了一个可以在不同 net版本中实现单点登录的简 单方法
共用登陆页代码实现
复制代码 代码如下: protected void btnLogin_Click(object sender EventArgs e) { //认证开票 跳转到原始请求页面 System Web Security FormsAuthentication RedirectFromLoginPage("ejiyuan" false); }配置文件
复制代码 代码如下: ? ? ?这里 authentication/forms节点最重要的两个属性是name和protection 所有实现单点登录的项目都要是相同的配置就这样 才可以在不同程序中同样的保护级别下读写Cookie 当 protection属性设置为 "All" 通过Hash值进行加密和验证数据都存放在Cookie中 默认的验证和加密使用的Key都存储在machine config文件 我们可以在应用程序的Web Config文件覆盖这些值 默认值如下:
IsolateApps表示为每个应用程序生成不同的Key 我们不能使用这个 为了能在多个应用程序中使用相同的Key来加密解密cookie 我们可以移除IsolateApps 选项或者更好的方法是在所有需要实现SSO的应用程序的Web Config中设置一个具体的Key值:
如果你使用同样的存储方式 实现SSO只是改动一下Web config而已 必须保证单点中的每个应用程序都有相同的配置 如果单点登录的应用程序是跨不同 net版本的 这里的加密/解密不要使用md
没有登录页的单点登录不需要代码 直接配置就可以了 配置如下
复制代码 代码如下: ? ?鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!