2

更新 2

通过查看 .NET 源代码,我能够找到一些有用的信息,但最终似乎在截止日期之前进行逆向工程需要太长时间,所以我选择使用第一个选项,即只拥有一个网络服务为我生成 .ASPXAUTH cookie。我在下面找到了一些更有用的链接,以防有人想更多地从头开始生成自己的 cookie。感谢所有回复的人!

链接

更新 1

我能够从.netlibrarysource找到来源。看起来 setauthcookie 的源代码包含在此源代码中。我会看看我是否可以通过查看它来弄清楚如何生成 cookie。

原帖

我看到另一个线程 [1] 可能有类似的问题,但我无法从措辞中确切地看出张贴者想要什么,所以我正在写我自己的。

我有一个用 ASP.NET 编写的 Web 应用程序,并引入了另一种语言/堆栈(我们会说 RoR)来对网站的某些功能进行整容。由于 .NET 是第一个,所有会话优先级都围绕使用身份验证票证(cookie 中的 ASPXAUTH 字段)来验证用户是否经过身份验证。这个字段是在许多 ASP 站点中生成的,用于处理会话,我使用它就无法解决。

这通常不会成为问题,但我希望用户能够使用 RoR 页面登录站点,并且无论他们访问的是 ASPX 页面还是 RoR 页面,都能够在整个站点中保留身份验证状态。所以,我觉得我有两个选择:

  1. 创建一些 RoR 发出请求的 .NET Web 服务,以便使用 SetAuthCookie() 从机器密钥 [2] 生成适当的令牌(cookie 的 ASPXAUTH 数据),或者
  2. 为 RoR 找到一种方法来模拟 .NET 用于生成令牌的任何方法,这样我就可以在 cookie 中设置值,而不必在用户访问 ASPX 页面时重新验证用户身份。

数字 2 更可取,但在谷歌上搜索 3-4 小时后我找不到任何关于如何做到这一点的信息,那么现在这里有人如何完成数字 2 吗?否则,我会做前者或尝试其他方法。提前感谢您提供我尚未考虑的建议、评论或替代选项。

[1]如何在 python 上创建 .ASPXAUTH cookie [2] http://msdn.microsoft.com/en-us/library/ff649308.aspx

4

2 回答 2

0

ASP.NET 设置授权 cookie。您还可以创建自己的安全 cookie,您可以将其与 ASP.NET cookie 一起设置(只是劫持登录代码)。然后您可以访问此 cookie 以检查用户是否已登录。

于 2012-06-21T23:29:38.277 回答
0

这不是一个完整的答案,所以请不要太苛刻,但这也不是评论,所以这里是:

您如何托管 RoR 内容,您是在 IIS 下使用它还是以其他方式使用它?

如果两个内容都可以从 IIS 中的同一站点/虚拟目录运行并通过全局 ASP 处理程序使用身份验证,然后将查询传递给正确的处理程序,我将调查什么。

可以创建一个通用处理程序来捕获所有流量,并且您可以通过这种方式实现身份验证;其机制取决于您使用的 II 版本以及您的 RoR 内容的提供方式。

于 2012-06-21T23:31:10.830 回答