基本上,我的网站有一个要求,即所有 cookie 必须是安全的。我正在尝试保护 FormsAuthentication cookie,但我希望在我的本地开发站点上不需要设置 SSL,而 live 站点仍然会保护 cookie。
这个 live/dev 状态存储在配置 xml 文件中。该文件包含站点运行的每台机器的设置。可以通过 Config.IsSecure 访问该文件。
这个 live/dev 状态存储在配置 xml 文件中。该文件包含站点运行的每台机器的设置。可以通过 Config.IsSecure 访问该文件。
if (Config.IsSecure)
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, login.Username, DateTime.Now, DateTime.Now.AddMinutes(30), false, "User", FormsAuthentication.FormsCookiePath);
string cookieStr = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieStr);
cookie.Path = FormsAuthentication.FormsCookiePath;
System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~");
AuthenticationSection authenticationSection = (AuthenticationSection)configuration.GetSection("system.web/authentication");
FormsAuthenticationConfiguration formsAuthentication = authenticationSection.Forms;
formsAuthentication.RequireSSL = true;
cookie.Secure = true;
configuration.Save()
}
FormsAuthentication.SetAuthCookie(login.Username, false);
我在保存时遇到了错误,提示有一个无法访问的临时文件。
您有什么解决办法吗?
Gurpreet
requireSSL
属性设置为true。 - Chris Marisic