我有一个在SSL上的ASP:NET MVC 2网站。我想创建一个像这样的cookie:
FormsAuthentication.SetAuthCookie(validatedUser.UserName, false);
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, validatedUser.SecureToken, DateTime.Now, DateTime.Now.AddMinutes(10), false, String.Empty);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket));
Response.Cookies.Add(cookie);
但我得到一个例外,告诉:“应用程序配置为发出安全cookie。这些cookie要求浏览器通过SSL(https协议)发出请求。但是,当前请求不是通过SSL。 “
在web.config中我有:
<authentication mode="Forms">
<forms loginUrl="~/Account/LoginError" timeout="2880" requireSSL="true" protection="All"/>
</authentication>
我该如何解决这个问题?
答案 0 :(得分:1)
requireSSL="false"
或使用http://
来请求您的网站。请注意,如果您关心安全性,这两个都是不好的主意。如果您希望安全网站离开requireSSL="true"
并使用https://
来请求您的网站。
此外,SetAuthCookie方法已将cookie写入响应,因此您不需要其他方法:
FormsAuthentication.SetAuthCookie(validatedUser.UserName, false);
就够了。您无需担心FormsAuthenticationTicket
并将Cookie添加到响应中。