我正在编写一个需要与ASP.NET登录集成的PHP脚本(恰好是在Sitecore上构建,不确定是否重要).我需要复制生成/登录/加密会话的能力.数据cookie,并且还通过检测/解密会话来检测用户是否登录.数据cookie. PHP和& ASP脚本可以共享相同的MS SQL数据库并且位于同一文件系统上,因此这不是问题.我的大多数问题都只是在PHP中设置/读取ASP cookie.
我有两个由ASP.NET设置的cookie,
ASP.NET_SessionId和.ASPXAUTH
我相信ASP.NET_SessionId明显用于会话,而.ASPXAUTH用于数据.
我的问题是:
>我相信,为了知道某人是否通过ASP会话登录(或登录某人),在PHP中,我需要将会话数据与存储在文件系统上的会话进行比较,是否有人知道在哪里(或者是什么决定了这些位置?
>有人知道用于加密/解密ASPXAUTH cookie的算法吗?我知道标准的“加密”和“解密”方法,但我想知道使它们精确运行的代码. IE是第一种某种数据阵列然后被盐水和散列?输出的字节是否需要移位/转换?如果是这样,以什么顺序/方式?
我感谢任何帮助,我会在接下来的几天内为那些最有帮助的人回答这些问题.
目前,我已经能够通过PHP中的setcookie()重现cookie生成.也就是说,我可以通过ASP.NET应用程序登录,获取cookie数据,将其插入PHP应用程序并通过ASP .NET应用程序注销.对于那些想要哄我的人,我很清楚这是可能的,我不需要解释为什么我这样做,但它涉及很多时间,金钱和理由,所以是的,我确实需要同时使用PHP& ASP.NET.
谢谢!
UPDATE
我相信我能部分地使用这个答案来解密cookie:https://stackoverflow.com/a/988018/775586任何人都知道如何完成它?
解决方法:
It is my belief that in order to know if someone is logged (or login
someone) in via an ASP session, in PHP, I will need to compare the
session data with the sessions stored on the filesystem, does anybody
know where (or what determines where) these are located?
无处文件系统.默认情况下,ASP.NET将会话数据存储在应用程序域的内存中.所以你可以简单地忘记从PHP访问这部分内存.您可以选择其他模式,允许您将ASP.NET会话数据存储在proc-of-proc(在专用Windows服务中)或SqlServer中.有关不同ASP.NET会话模式的更多信息,我邀请您阅读following article.
Does anybody know the algorithm used to encrypt/decrypt the ASPXAUTH
cookie? IE is it first some sort of data array that is then salted and
hashed? If so, in what order/way?
它使用FormsAuthentication.Encrypt和Decrypt方法.它们反过来使用您在web / machine.config文件的machineKey部分中定义的任何算法和密钥.有关Forms Authentcation如何在ASP.NET中工作的更多信息,请邀请您阅读following article.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!