更新 2
通过查看 .NET 源代码,我能够找到一些有用的信息,但最终似乎在截止日期之前进行逆向工程需要太长时间,所以我选择使用第一个选项,即只拥有一个网络服务为我生成 .ASPXAUTH cookie。我在下面找到了一些更有用的链接,以防有人想更多地从头开始生成自己的 cookie。感谢所有回复的人!
链接
更新 1
我能够从.netlibrarysource找到来源。看起来 setauthcookie 的源代码包含在此源代码中。我会看看我是否可以通过查看它来弄清楚如何生成 cookie。
原帖
我看到另一个线程 [1] 可能有类似的问题,但我无法从措辞中确切地看出张贴者想要什么,所以我正在写我自己的。
我有一个用 ASP.NET 编写的 Web 应用程序,并引入了另一种语言/堆栈(我们会说 RoR)来对网站的某些功能进行整容。由于 .NET 是第一个,所有会话优先级都围绕使用身份验证票证(cookie 中的 ASPXAUTH 字段)来验证用户是否经过身份验证。这个字段是在许多 ASP 站点中生成的,用于处理会话,我不使用它就无法解决。
这通常不会成为问题,但我希望用户能够使用 RoR 页面登录站点,并且无论他们访问的是 ASPX 页面还是 RoR 页面,都能够在整个站点中保留身份验证状态。所以,我觉得我有两个选择:
- 创建一些 RoR 发出请求的 .NET Web 服务,以便使用 SetAuthCookie() 从机器密钥 [2] 生成适当的令牌(cookie 的 ASPXAUTH 数据),或者
- 为 RoR 找到一种方法来模拟 .NET 用于生成令牌的任何方法,这样我就可以在 cookie 中设置值,而不必在用户访问 ASPX 页面时重新验证用户身份。
数字 2 更可取,但在谷歌上搜索 3-4 小时后我找不到任何关于如何做到这一点的信息,那么现在这里有人如何完成数字 2 吗?否则,我会做前者或尝试其他方法。提前感谢您提供我尚未考虑的建议、评论或替代选项。
[1]如何在 python 上创建 .ASPXAUTH cookie [2] http://msdn.microsoft.com/en-us/library/ff649308.aspx