加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 安全地将用户从一个ASP .NET应用程序转移到另一个

发布时间:2020-12-16 03:18:15 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP .NET Web应用程序,它使用表单身份验证.我们称这个应用为“Foo”.我正在创建另一个名为“Bar”的ASP .NET应用程序. 我想要发生的是用户登录到Foo,然后单击一个链接,将它们带到Bar应用程序中的页面. Bar应用程序不应要求Foo用户再次登录. Foo应用
我有一个ASP .NET Web应用程序,它使用表单身份验证.我们称这个应用为“Foo”.我正在创建另一个名为“Bar”的ASP .NET应用程序.

我想要发生的是用户登录到Foo,然后单击一个链接,将它们带到Bar应用程序中的页面. Bar应用程序不应要求Foo用户再次登录. Foo应用程序应该将安全票证传递给Bar应用程序,然后用户可以在Bar应用程序中进行他/她的业务.

我还想限制对Bar应用的访问.因此,如果用户在未首先登录的情况下尝试访问Bar应用程序,则会将其重定向到Foo登录页面.

这可能吗?如果是这样,我该如何实现呢?

解决方法

我这样做了一次,它是在一个 PHP站点和一个ASP.NET站点之间(我是ASP.NET开发人员,但也了解一些关于PHP的内容).

如果App1是用户的入口点,那么在登录时App1应该为该用户创建一个键值对,该键值由用户名和生成的密钥组成(例如GUID).以编程方式,它应该与App2通信并发送此密钥(例如,启动后台线程).假设用户John Doe在App1上成功登录.

App1生成一个密钥(3l3kjlk3j4lkj34,JohnDoe)并通过某种通信将其发送到App2(例如通过HTTP调用URL,例如www.app2.com/SetTempKey.aspx?userId=JohnDoeu0026amp;key=3l3kjlk3j4lkj34-一个页面出于安全原因,仅允许来自某个IP的请求).

App2将收到临时访问密钥并存储它.假设App2的登录页面位于www.app2.com/login.aspx.

在app1中,您将生成一个指向www.app2.com/login.aspx?tempKey=3l3kjlk3j4lkj34的链接,其中包含一个像“转到我们的app2”的标签.当用户单击链接时,将调用app2上的login.aspx页面.检查查询字符串是否存在tempKey查询字符串参数,然后检查存储在app2中的临时密钥中密钥的有效性,发现这真的是JohnDoe.

App2只需通过调用FormsAuthentication.RedirectFromLoginPage(“JohnDoe”,true)来记录他(首先是用户名,然后如果formsAuth cookie应该是持久的/ not_session_lived).

……那就是它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读