gpt4 book ai didi

c# - 在实时环境的 cookie 上启用 SSL,在开发环境中启用非 SSL

转载 作者:行者123 更新时间:2023-11-30 16:32:20 25 4
gpt4 key购买 nike

基本上,我的站点中有一项要求,这意味着必须保护所有 cookie。我正在尝试保护 FormsAuthentication cookie,但是,我希望这样在我的本地开发站点上我不必设置 SSL,但是实时站点仍将保护 cookie。

此实时/开发状态存储在配置 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);

所以我在保存部分遇到错误。说有临时文件不能访问。

知道如何解决这个问题吗?

古普雷特

最佳答案

我不太明白您要做什么,或者为什么您必须编写自定义代码才能做到这一点。我相信您可以在 web.config 中将表单例份验证配置为对 cookie 使用 SSL。然后只需为实时和开发使用不同的 web.config。

requireSSL 属性应该完全符合您的要求吗? (将 cookie 设置为仅安全,以便浏览器仅在安全连接时返回表单例份验证 cookie)。

类似于(在 web.config 中)

<authentication mode="Forms">
<forms timeout="30" loginUrl="/MyLogin.aspx" protection="All" requireSSL="True" />
</authentication>

关于c# - 在实时环境的 cookie 上启用 SSL,在开发环境中启用非 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4133730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com