ASP会话算法通过PHP生成cookie

时间:2012-07-03 17:49:42

标签: php asp.net session cookies

我正在编写一个需要与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的算法吗? 我知道标准"加密"和" Decrypt"方法,但我想知道使它们精确运行的代码。 IE首先是某种数据数组然后被盐水和散列?输出的字节是否需要移位/转换?如果是这样,以什么顺序/方式?

我感谢任何帮助,我会在接下来的几天内为那些最有帮助回答这些问题的人提供答案。

目前,我已经能够通过PHP中的setcookie()重现cookie生成。也就是说,我可以通过ASP.NET应用程序登录,获取cookie数据,将其插入PHP应用程序并通过ASP .NET应用程序注销。对于那些想要哄我的人,我很清楚这是可能的,我不需要解释为什么我这样做,但它涉及很多时间,金钱和理由,所以是的,我确实需要同时使用PHP& ASP.NET。

谢谢!

更新

我相信我能够使用这个答案部分解密cookie:https://stackoverflow.com/a/988018/775586任何人都知道如何完成它?

2 个答案:

答案 0 :(得分:2)

  

我相信,为了知道某人是否已登录(或登录   某人在通过ASP会话,在PHP中,我需要比较一下   任何人都可以使用存储在文件系统上的会话数据   知道这些位于何处(或决定在何处)?

文件系统无处可去。默认情况下,ASP.NET将会话数据存储在应用程序域的内存中。所以你可以简单地忘记从PHP访问这部分内存。您可以选择其他模式,允许您将ASP.NET会话数据存储在proc-of-proc(在专用Windows服务中)或SqlServer中。有关不同ASP.NET会话模式的更多信息,我邀请您阅读following article

  

是否有人知道用于加密/解密ASPXAUTH的算法   曲奇饼? IE首先是某种数据阵列然后被盐渍化   哈希?如果是这样,以什么顺序/方式?

它使用FormsAuthentication.EncryptDecrypt方法。它们反过来使用您在web / machine.config文件的machineKey部分中定义的任何算法和密钥。有关Forms Authentcation如何在ASP.NET中工作的更多信息,我邀请您阅读following article

答案 1 :(得分:2)

好的第一个问题......

对于第二个也是更重要的问题:

http://www.codeproject.com/KB/aspnet/Forms_Auth_Internals/image001.jpg