C#如何确定HTTPS如何确定强制用户只能使用HTTPS查看我的网站?我知道它可以通过IIS完成,但想知道如何以编程方式完成。你可以像这样写一个HttpModule://////用于将非安全请求更正为安全请求。///如果网站后端需要使用SSL,则整个请求///应该是安全的。///publicclassSecurityModule:IHttpModule{publicvoidDispose(){}publicvoidInit(HttpApplicationapplication){application.BeginRequest+=newEventHandler(application_BeginRequest);}protectedvoidapplication_BeginRequest(objectsender,EventArgse){HttpApplicationapplication=((HttpApplication)(sender));HttpRequest请求=application.Request;HttpResponse响应=application.Response;//如果后端需要安全连接并且当前//请求不使用SSL,则将请求重定向到安全if({useSSL}&&!request.IsSecureConnection){stringabsoluteUri=request.Url.AbsoluteUri;response.Redirect(absoluteUri.Replace("http://","https://"),true);}}}其中{useSSL}是不是使用SSL的一些条款。编辑:当然,不要忘记将模块定义添加到web.config中:...有点硬编码但很简单!如果(!HttpContext.Current.Request.IsSecureConnection){Response.Redirect("https://www.foo.com/foo/");您必须将它从VB.NET转换为C#,但这是我的在我的网站中使用:ImportsSystem.Web.HttpContextPublicSharedSubSetSSL(OptionalByValbEnableAsBoolean=False)IfbEnableThenIfNotCurrent。Request.IsSecureConnectionThenDimstrHTTPSAsString="https://www.mysite.com"Current.Response.Clear()Current.Response.Status="301永久移动"Current.Response.AddHeader("Location",strHTTPS&Current.Request.RawUrl)Current.Response.End()EndIfElseIfCurrent.Request.IsSecureConnectionThenDimstrHTTPAsString="http://www.mysite.com"Current.Response.Clear()Current.Response.Status="301MovedPermanently"Current.Response.AddHeader("Location",strHTTP&Current.Request.RawUrl)Current.Response.End()EndIfEndIfEndSub它比其他一些技术代码更多,但这是有原因的为了那个原因。此方法仅在您未处于应处于的模式时才会重定向。当它执行重定向时,它会执行301(永久)重定向。好处是搜索引擎将遵循301重定向,这将防止它们对同一页面进行两次索引(在http和https模式下)。您可以将此与Response.Redirect(302临时重定向)的默认行为进行比较,例如,Google不会以相同的方式进行。他们不会根据临时重定向更改索引。因此,如果您在要加密SSL的页面上,请这样调用它:SetSSL(true)否则:SetSSL(false)如果您确实需要在全局应用它,我会在您的global.asax的Application_BeginRequest调用中执行此操作SetSSL(True)in。请注意,SSL会减慢速度。出于这个原因,我通常在http和https之间切换时非常挑剔。事实上,在我开发的数十个网站中,只有两个在整个网站中使用SSL。本文描述了移入和移出SSL的请求。有时您不希望用户在SSL中查看页面,因为它会为不需要保护的页面消耗proc周期。http://weblogs.asp.net/kwarren/archive/2005/07/08/418541.aspxIIR您可以检查请求的域(HttpContext.Current.Request)然后您可以检查正在使用的协议(http,https,ftp等)你也可以在web.config的system.webServer标签下设置重写规则。例如:以上是C#学习教程:C#如何判断HTTPS分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
