【问题标题】:Integrating FormsAuthentication from asp.net in classic asp在经典 asp 中集成来自 asp.net 的 FormsAuthentication
【发布时间】:2015-10-07 05:59:22
【问题描述】:

最近我的任务是在两个不同域的网站之间创建单点登录。一个在 ASP.NET 下运行,另一个在经典 ASP 下运行。由于我在 ASP.NET 方面的经验非常少(我是 Java 爱好者)和在 ASP 方面的零经验(加上已经过时并且我讨厌它),我遇到了很多困难。第一个是:如何将来自 ASP.NET web 的身份验证 cookie 传递给 ASP web?

我找到了这篇文章,它似乎准确地描述了我所需要的:

http://www.santry.com/Blog/tabid/90/ID/1156/Creating-a-Single-Sign-on-for-ASPNET-Application-and-Legacy-ASP-Application-Part-II.aspx

但问题在于,它假设了很多关于 Web 开发的先前知识以及它使用的工具(例如,COM 互操作性包装器、API 等),并且很难从中找出一些东西。但是,我喜欢提取 FormsAuthentication 实用程序并在旧版 ASP 中使用它们的核心思想。

所以我需要一些指导方针来实现上面链接中描述的内容,以便至少创建一个功能测试(具有功能意义,我可以从虚拟 ASP.NET 网络发送 cookie 中的凭据并接收 cookie以经典的 ASP 形式),或在这两个站点之间实现单点登录的其他替代方法。

需要注意的重要一点是,我无法通过通配符映射执行此操作,因为我无法访问 IIS 配置。

【问题讨论】:

    标签: c# asp.net security asp-classic session-cookies


    【解决方案1】:

    嗯,这并不是我要问的,但我找到了一篇很好的文章,解释了如何在 asp.net 和 asp 之间传输会话状态,反之亦然。它很简单,不是那么优雅,但可以完成工作。我已经能够快速实施它并创造了奇迹。实际上,我找到了两个链接:

    我用第一个,因为我很着急,然后添加了一个基于 Token 的身份验证来提高安全性。到目前为止,一切都很好。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      这可能看起来很老套,但我会在登录到任一域时生成一个 GUID,并将该 GUID 在标题中发送到另一个站点,或者在它们在站点之间交叉时发布。当未经身份验证的站点看到 GUID 时,查找将允许它确定预期的帐户。事实上,将其设为 AccountID 和 DateTime 的 MD5,您将拥有一个极不可能被误认为其他用户的值。

      【讨论】:

      【解决方案3】:

      您将永远无法将从一个域接收到的身份验证 cookie 发送到另一个域上的网站。浏览器same origin policy 会阻止这种情况。

      要完成这项工作,您需要研究一个单点登录 (SSO) 解决方案,其中两个 Web 应用程序都从同一个安全令牌服务 (STS) 获取其身份验证 cookie。

      这对于 ASP.NET 来说很容易。查看System.IdentityModel 命名空间。我不知道这是否也适用于经典 ASP。

      祝你好运。

      【讨论】:

      • 您好 user18044。正如我在上面所写的,SSO 正是我想要实现的。 System.IdentityModel 在 ASP 中不可用,因此问题
      • 是的,经典的 ASP 是古老的。看看这个:forloop.co.uk/blog/…
      猜你喜欢
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多