我们有一个现有的ASP.Net Web窗体应用程序,它安装在每个客户端自己的服务器上。这已被他们所有人使用了一段时间而且从未真正遇到过问题,我们现在有些人在通过iPad登录时遇到错误:
invalid value for encrypted ticket parameter
我们在这里有iPad进行测试,我们没有收到错误,尽管让他们确保在safari设置中接受cookie,甚至要求他们在iPad上试用Chrome也没什么区别。无法复制它使得诊断非常困难所以我希望以前有人可能遇到过这个问题。
它使用Forms身份验证和自定义MembershipProvider。
答案 0 :(得分:0)
如果将无效字符串传递给System.Web.Security.FormsAuthentication.Decrypt
,则会发生这种情况。最常见的是尝试传递cookieName
而不是cookieValue
。
以下是获取ASPXAUTH cookie值+ info的方法:
string authCookieValue = HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName].Value;
var cookieInfo = System.Web.Security.FormsAuthentication.Decrypt(authCookieValue);
答案 1 :(得分:0)
您必须检查HttpCookie的null以及它的值,如下所示。
HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
//Extract the forms authentication cookie
if (!string.IsNullOrEmpty(authCookie.Value))
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
string email = authTicket.UserData;
// and now process your code as per your condition
}
}