gpt4 book ai didi

http - 使用不同的应用程序池时单点登录无法正常工作?

转载 作者:可可西里 更新时间:2023-11-01 15:30:15 27 4
gpt4 key购买 nike

通过在 IIS 7 下创建 2 个新网站,我发现单点登录身份验证在不同的应用程序池中运行时不起作用。当我将应用程序移动到同一个池中时,我可以登录其中一个并登录另一个。当我在其中一个上更改应用程序池时,我没有在第二个上登录。

是否可以在 machine.config 文件中设置任何设置以允许它们通过应用程序池共享相同的 cookie?


例。 1:proj1(应用程序池.net 2)

proj2(应用程序池 .net 2)

= 单点登录有效,它们共享相同的身份验证 cookie。


例。 2:proj1(应用程序池.net 2)

proj2(应用程序池 .net 4,集成/经典)

= 单点登录不起作用,它们没有共享相同的身份验证 cookie。


例。 2:proj1(应用程序池 .net 4,集成/经典)

proj2(应用程序池 .net 4,集成/经典)

= 单点登录有效,它们共享相同的身份验证 cookie。


原帖

最新更新在底部

我有 2 个项目,一个是 asp.net webforms,另一个是 mvc 3 项目。

我遵循了本指南(见底部),并在我的计算机上正常运行。但是当我将它上传到服务器时,它不再起作用了。我能想到的区别是,1) 在我们使用 SSL 的服务器上,2) webforms 项目使用 .net 2 而 MVC 项目使用 .net 4(集成模式)和 3) 我使用 IIS 7服务器和我使用 VS 2008/2010 在我的本地机器上测试它。

asp.net MVC 3 (.net 4)

<forms name=".ASPXAUTH" loginUrl="~/Home/Login" timeout="30" enableCrossAppRedirects="true" domain=".mydomain.com" ticketCompatibilityMode="Framework20" />

网络表单 (.net 2)

<forms name=".ASPXAUTH" loginUrl="Default.aspx" defaultUrl="Default.aspx" timeout="30" domain=".mydomain.com" enableCrossAppRedirects="true" />

有趣的是,我上传了一个 test.aspx 页面到 Mvc (.net 4) 和 webforms (.net) 项目,它只显示了一些痕迹。

两个项目都具有相同的 sessionid 和 .ASPXAUTH。在我的本地主机上,我可以访问 mvc 项目上的 ASPXAUTH,但我无法在服务器上访问它。

项目作为子域 mvc.mydomain.com 和 webforms.mydomain.com 运行。

有人知道如何解决这个问题吗?我可以完全访问 IIS 7.0。

(我也尝试关闭服务器上的 SSL,但我仍然得到相同的结果)

身份验证共享指南: http://www.codeproject.com/KB/aspnet/SingleSignon.aspx

已更新我也试过这个:(webforms .net 2.0)

var ticket = new FormsAuthenticationTicket(1, "authtest", DateTime.Now, DateTime.Now.AddMinutes(30), false, login.Email);
var enc = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie("authcookie", enc) {Domain = ".mydomain.com"};
Response.Cookies.Add(cookie);

在 mvc 3 (.net 4) 中

FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(HttpContext.Request.Cookies["authcookie"].Value);
ViewBag.User = "User: " + ticket.Name;

这会引发以下错误:“要解密的数据的长度无效。”

7 月 6 日更新

有趣!当我添加 2 个在 .net 2 下运行的新域时,它运行良好。但是当我将应用程序池更改为 .net 4 时,它停止工作。好像它们不兼容,或者我可能在某处缺少设置

最佳答案

我认为您必须将两个应用程序的 Web.config 中的 machineKey 设置为相同的值。您可以在此处生成机器 key 部分:http://aspnetresources.com/tools/machineKey

关于http - 使用不同的应用程序池时单点登录无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6549637/

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