如何使用SSL页面创建Cookie?

时间:2010-10-25 11:17:08

标签: asp.net-mvc-2 cookies ssl https


我有一个在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>    

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

requireSSL="false"或使用http://来请求您的网站。请注意,如果您关心安全性,这两个都是不好的主意。如果您希望安全网站离开requireSSL="true"并使用https://来请求您的网站。

此外,SetAuthCookie方法已将cookie写入响应,因此您不需要其他方法:

FormsAuthentication.SetAuthCookie(validatedUser.UserName, false);

就够了。您无需担心FormsAuthenticationTicket并将Cookie添加到响应中。