2009-11-19 69 views
0

什么时候应该为ASP.NET页面生命周期中的安全页面实施SSL?ASP.NET页面生命周期 - 在什么时候执行SSL?

我的意思是我应该在page_load里面做?或OnInit?或者其他一些功能?

我正在使用以下代码为特定页面实施SSL,但我应该在哪里放置此代码?之前我将它放在OnInit函数中,但是这对ASP.NET向导并不适用。我需要检查它是否回发或不是第一次?

if (!HttpContext.Current.Request.IsSecureConnection) { 
       HttpContext.Current.Response.Redirect(SiteNavigation.ResolveAbsoluteUrl(true, HttpContext.Current.Request.Url.PathAndQuery)); 
      } 

回答

-1

如果你打算将用户重定向,你想要做它在生命周期中尽可能早,因为花费在生命周期的任何CPU将被浪费。在OnInit中进行重定向。

+0

-1这个问题说他尝试了OnInit并且效果不好。 – Gonzalo 2009-11-19 01:29:29

+0

它实际上工作正常。棘手的部分是设计师可能会尝试删除它,因为OnInit通常位于自动生成的代码块中。只要确保在VS尝试删除代码时将代码添加回来。这很简单:) – 2009-11-19 01:33:33

1

另一种选择是完全在应用程序之外执行此操作,并在IIS 中强制执行SSL(如果整个站点需要SSL连接)。我们通过为同一个域名创建两个站点,在IIS6中完成了这项工作。

mysite.com:80有一个HTTP 403重定向到站点的SSL版本。 mysite.com:443具有实施SSL的实际应用程序。

如果整个网站不需要SSL连接,但只有登录页面或网站的某些其他孤立部分,而不是Global.asax中的编程方法(由Gonzalo提到)可能是最好的方法因为这会在页面生命周期的早期抓住它。