我用ASP.NET开发了网站。现在我进行身份验证。
授权由另一个Web服务进行。如果网络服务的答案成功,我会创建一张票:
var ticket = new FormsAuthenticationTicket(1, param.Login, DateTime.Now, DateTime.Now.AddDays(1), false, string.Empty, FormsAuthentication.FormsCookiePath);
var encTicket = FormsAuthentication.Encrypt(ticket);
var AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName)
{
Value = encTicket,
Expires = DateTime.Now.AddDays(1)
};
Response.Cookies.Set(AuthCookie);
此代码添加了验证cookie。但是如果我在前面的代码之后添加下一个字符串:
Response.Redirect("<redirect address>");
重定向后,cookie消失了。
为什么会这样?
web.config部分验证:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="~/login.ashx" />
</authentication>
答案 0 :(得分:0)
与cookie相关联的cookie数据可能会超过其加密格式的最大允许大小。未加密,数据不会太大。
cookie的大小可能导致cookie从响应头中丢失。以下修复值得尝试:
这个POST提供了有关Cookie大小的详细信息。