В основном, на моем сайте есть требование, которое означает, что все куки должны быть защищены. Я пытаюсь защитить cookie-файл FormsAuthentication, однако мне бы хотелось, чтобы на моем локальном сайте разработчика мне не приходилось настраивать SSL, однако действующие сайты по-прежнему будут защищать cookie.
Этот статус в реальном времени / 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