我用 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>