gpt4 book ai didi

asp.net - 从公共(public)访问中保护 MediaWiki 在 Linux PHP 上验证 Windows ASP 服务器

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:07 25 4
gpt4 key购买 nike

我们有一个在 IIS6 ASP.Net 服务器上运行的 Web 应用程序。您必须登录才能使用该软件。基本上,当您登录时会生成一个 cookie,然后当您访问后续页面时,它们会检查该 cookie;如果它不存在,那么您将被重定向到登录。

我们想使用 Linux/PHP (LAMP) 实现一个 MediaWiki 服务器,为我们的用户提供一个“wiki”格式的帮助部分。但是,我们只想允许登录该软件的人访问。

所以我们有 software.company.com(Windows/IIS6/ASP.NET 服务器),您可以登录并导航到我们的帮助,这会将您重定向到 kb.company.com(Linux/Apache/PHP 服务器)。

我的想法是在 Linux 服务器上使用相同类型的“cookie”检查,但我不确定如何让 Windows IIS 框向 Linux 服务器传递一个 token 或其他东西,说“嘿,这个用户是登录后为他们生成一个 cookie”。

有人做过这样的事吗?我可能完全错过了我的想法......

最佳答案

这里的问题是关于如何告诉 kb.company.com入站用户经过真正身份验证并登录的站点 support.company.com .

我们有一个非常相似的设置。我们有经销商门户和私有(private)知识库 wiki 站点。

为了将用户转移到 wiki 站点,我们有一个特殊的链接,请求在 support.company.com 上的页面它生成一个数据 block 和一个 session key (例如一个或两个 guid),该 session key 持久保存到两个站点都可以访问的“ session 传输”数据库表中。

然后我们Response.Redirect()使用此 key 访问维基站点的用户,例如:

http://kb.company.com/DoLogin.aspx?session=E97DDE8D-1C57-4450-ABE4-72E2054A1C82

In the wiki (we modified ScrewTurn wiki slightly) we have Forms Authentication turned on and deny access to anonymous users. The DoLogin.aspx grabs the session value from the query string and then looks for the record stored in the "session transfer" table. If there's a match then we authenticate the user and delete the session transfer record.

The session transfer record is also date and time stamped and is allowed a lifetime of 90 seconds after which a cleanup task will delete the record.

Rather than pass the session key value via the querystring you could pass this via a cookie where the cookie domain is set to company.com:

HttpCookie cookie = new HttpCookie("session", "<guid>");
cookie.Domain = "company.com";

进一步的修饰是加密 cookie 值,做一些散列并检查传输另一端的篡改。然而,我们 wiki 中的内容并不是非常有值(value)(最终用户无法编辑这些内容),我们只是想防止偶然路过,这对我们来说很好。

关于asp.net - 从公共(public)访问中保护 MediaWiki 在 Linux PHP 上验证 Windows ASP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6073771/

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