.net 怎样实现单点登录

.net怎样实现单点登录:现有几个老系统,老系统各自有自己的数据库,不过用户表是一样的,不让更改老系统的代码,都有登录界面。单点登录功能如何实现。有做过的朋友帮下,急用,... .net 怎样实现单点登录:现有几个老系统,老系统各自有自己的数据库,不过用户表是一样的,不让更改老系统的代码,都有登录界面。单点登录功能如何实现。
有做过的朋友帮下,急用,
展开
 我来答
villagearcher
2013-09-03
知道答主
回答量:22
采纳率:0%
帮助的人:13.8万
展开全部
用Cache可以实现。每次新的用户登录成功,就给用户账号(系统唯一)绑定一个guid,然后保存到cache中(用户账号作为key,guid作为value),并且将该键值对保存到cookie中。然后每次服务器接收到请求时,都判断cookie中的账号的guid值与服务器cache中保存的该账号的guid值是否一致。只有一致才接受请求。注意在往cache中保存值的时候,要指定更新,而不是每次都新插入。cache设置过期时间长一点。然后最好在用户退出系统的时候,清理掉该账号的cache。
追问
你好 老系统不让改 老系统是以前别人做的 没有源码 。这样的能实现单点登录么?
巧米乐
2015-07-19 · 知道合伙人房产装修行家
巧米乐
知道合伙人房产装修行家
采纳数:61569 获赞数:748063
林深时见鹿,海蓝时见鲸……

向TA提问 私信TA
展开全部

  所谓单点登录(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"/>

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
li2584640
2013-09-02 · 超过21用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:62.9万
展开全部
用Cookie应该可以吧。设置他的Domain。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式