FormsAuthentication加密/解密

时间:2015-05-15 11:58:47

标签: asp.net encryption forms-authentication asp.net-4.5

我有2个应用程序,一个名为www.domain.dk,另一个名为m.domain.dk

他们两个都有一个登录功能(相同),但是如果您登录m.domain.dk并转到www.domain.dk,那么它需要记住您已经登录。

这就是问题所在..

www抛出并且错误说它无法验证m站点设置的cookie中的数据,所以我开始调试代码并发现当www加密FormsAuthenticationTicket时,加密的字符串比64个字符长当m网站做到了。

web.config的以下部分对于两个项目都是相同的

<machineKey validationKey="CF3D..." decryptionKey="A56..." validation="SHA1" decryption="AES" />

<authentication mode="Forms">
  <forms name=".ASPXAUTH" domain=".domain.dk" timeout="20" enableCrossAppRedirects="true" path="/" protection="All" cookieless="UseCookies" />
</authentication>

以下代码来自登录功能

var ticket = new FormsAuthenticationTicket(1, user.UserName, DateTime.Now, DateTime.Now.AddMinutes(20), false, string.Empty, "/");
var hashCookies = FormsAuthentication.Encrypt(ticket);

www是一个旧网站,所以我的问题主要是,除了我在web.config中的那些之外,是否还有其他可能影响“FormsAuthentication.Encrypt”的事情?

1 个答案:

答案 0 :(得分:0)

解决方案是添加

string messageBody1 = "DeviceID:20," + "Temperature:30";
ClientHelper.SendMessage(messageBody1).Wait();

到MachineKey标签