gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:27:45 26 4
gpt4 key购买 nike

我有一个使用表单例份验证的 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 通信并发送此 key (例如启动后台线程)。假设用户 JohnDoe 在 App1 上成功登录。

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

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

在 app1 中,您将生成一个指向 www.app2.com/login.aspx?tempKey=3l3kjlk3j4lkj34 的链接,并带有一个不错的标签,例如“转到我们的 app2”。当用户单击该链接时,将调用 app2 上的 login.aspx 页面。检查查询字符串中是否存在 tempKey 查询字符串参数,然后检查 app2 存储的临时 key 中 key 的有效性,发现此 真的是约翰多伊。

App2 只需调用 FormsAuthentication.RedirectFromLoginPage("JohnDoe", true)(首先是用户名,然后是 formsAuth cookie 是否应该是持久的/not_session_lived)来记录他。

……差不多就是这样。

关于asp.net - 安全地将用户从一个 ASP .NET 应用程序转移到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com