我刚刚从VS2010升级到了VS 2012,现在使用FormsAuthentication时遇到了一些问题。
我有一些旧代码,用于创建一个自定义的授权cookie来存储一些信息:
public static int SetAuthCookie<T>(this HttpResponse responseBase, string name, bool rememberMe, T userData)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
var cookie = FormsAuthentication.GetAuthCookie(name, rememberMe);
var ticket = FormsAuthentication.Decrypt(cookie.Value);
var newTicket = new FormsAuthenticationTicket(ticket.Version,
ticket.Name,
ticket.IssueDate,
ticket.Expiration,
ticket.IsPersistent,
serializer.Serialize(userData),
ticket.CookiePath);
var encodedTicket = FormsAuthentication.Encrypt(newTicket);
cookie.Value = encodedTicket;
responseBase.Cookies.Add(cookie);
return encodedTicket != null ? encodedTicket.Length : 0;
}
}
升级到.NET 4.5后,HttpContext.Current.Request.IsAuthenticated始终为空。我发现在.NET 4.5中有一种新的身份验证方式,但我不想使用它,因为我将无法从.NET 4.0升级生产环境。在使用自定义auth cookie时是否有设置身份验证的方法?