我有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”的事情?
答案 0 :(得分:0)
解决方案是添加
string messageBody1 = "DeviceID:20," + "Temperature:30";
ClientHelper.SendMessage(messageBody1).Wait();
到MachineKey标签