asp.net – 安全地将用户从一个ASP .NET应用程序转移到另一个
我有一个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). ……那就是它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 用HttpClientFactory来实现简单的熔断降级
- asp.net-mvc – 表单身份验证cookie未过期
- ASP.NET将整数绑定到CheckBox的Checked字段
- asp.net – System.Web.Providers不适用于中等信任
- asp.net – Google协议缓冲区或.net / javascript类似的东西
- asp.net-mvc-3 – 在控制器操作完成后使用Javascript隐藏图
- asp.net-mvc – 如何在MVC3中存储用户首选项
- asp.net-mvc – ASP.NET MVC查看引擎解析顺序
- asp.net – 当前上下文中不存在名称“GridView1”
- asp.net – 如何使用MVC Razor设置类等html属性?
- asp.net – 使用Razor有点像回到经典的asp
- 提供第三种代码生成方式——通过自定义BuildProv
- asp.net-mvc – 将html标记传递给ASP.NET用户控件
- asp.net-mvc – 如何在MVC Unobtrusive Validati
- asp.net-mvc – MVC – 视图中的多个模型
- asp.net-mvc – Html.Raw()在ASP.NET MVC Razor视
- 如何在asp.net按钮回发之前运行javascript函数
- iis-7 – localhost上的IIS非常慢
- asp.net – 谁能告诉我在Mvc视图中@using和@Mode
- asp.net-mvc – 使用Entity Framework在控制器中