gpt4 book ai didi

c# - 在 ASP.Net 中编写重定向到 SSL 页面的最佳方法是什么

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:02 26 4
gpt4 key购买 nike

一段时间以来,我一直在努力为 ASP.Net 应用程序重定向到 SSL 页面代码。我仍然没有找到好的解决方案。问题是,如果我在本地主机上,例如当我正在调试或编码时,我想禁用代码,但我无法让它工作。另一个问题是它必须重定向到另一个 url 所以 http://www.xx.com应该重定向到 https://Secure.xxx.com .有什么想法吗?

最佳答案

如果您希望在页面级别设置 ssl 属性,您应该创建一个 custom attribute .

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public sealed class HttpsAttribute : Attribute{}

[HttpsAttribute]
public partial class PageSecured: YourCustomBasePage {}

现在基页 YourCustomBasePage 可以检查是否设置了这个属性:

protected override void OnInit(EventArgs e){ 
if(!Request.IsSecureConnection){
HttpsAttribute secureAttribute = (HttpsAttribute)Attribute.GetCustomAttribute(GetType(), typeof(HttpsAttribute));
if(secureAttribute != null){
//Build your https://Secure.xxx.com url
UriBuilder httpsUrl = new UriBuilder(Request.Url){Scheme = Uri.UriSchemeHttps, Port = 443};
Response.Redirect(httpsUrl.Uri.ToString());
}
}
}

要阻止您的本地计算机重定向到 HTTPS,您可以在 web.config 中使用配置值。

private bool HTTPSEnabled{
get{ return ConfigurationManager.AppSettings["HTTPSEnabled"] == null || Boolean.Parse(ConfigurationManager.AppSettings["HTTPSEnabled"]); }
}

然后您将检查添加到第一个条件

if(!Request.IsSecureConnection && HTTPSEnabled) 

关于c# - 在 ASP.Net 中编写重定向到 SSL 页面的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7169543/

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