如何在ASP.Net应用程序中使用HTTPS

时间:2009-02-12 02:15:43

标签: asp.net https

我想在我的ASP.NET Web应用程序中使用HTTPS,但仅限于Login.aspx页面。

如何实现这一目标?

5 个答案:

答案 0 :(得分:30)

  1. 首先获取或创建证书

  2. http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Ver获取SecureWebPageModule模块。有关设置的说明,请参阅文章。

  3. 将secureWebPages标记添加到web.config

    <configuration>
        ...
        <secureWebPages enabled="true">
            ...
        </secureWebPages>
        ...
        <system.web>
            ...
        </system.web>
    </configuration>
    
  4. 添加要用于https协议的文件和目录:

    <secureWebPages enabled="true">
        <file path="Login.aspx" />
        <file path="Admin/Calendar.aspx" ignore="True" />
        <file path="Members/Users.aspx" />
        <directory path="Admin" />
        <directory path="Members/Secure" />
    </secureWebPages> 
    
  5. 希望这有帮助!

答案 1 :(得分:12)

您可以发布自己的证书,也可以购买一个。需要注意的是,购买一个,取决于公司,意味着它已经存储在大多数浏览器的证书存储中。您自己发布的将不会,并且您的用户将不得不采取额外的步骤来安装您的证书。

您没有说明您正在使用的IIS版本,但是here are some detailed instructions for IIS 6

您可以购买相对便宜的证书,或者您可以与大男孩(verisign)一起购买并获得扩展验证证书,该证书可以在IE中将您的地址栏变为绿色。这也是一个有点严格的验证过程,需要时间。

如果您知道将要访问您网站的所有用户,那么安装自己的用户就没有问题。但是,对于拥有匿名用户(您不知道)的开放式网站,最好购买已经存在于大多数主流浏览器,证书库中的用户。

您可以通过IIS启用SSL,并且只需要您的login.aspx页面,而不是其他页面。

答案 2 :(得分:10)

获得SSL安装/安装后,您希望在登录页面上进行某种重定向到https://。然后,验证后用户被发送到的任何页面都可以是http://。

Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    If Request.IsSecureConnection = False And _
        Not Request.Url.Host.Contains("localhost") Then

        Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"))
    End If
End Sub

这可能更容易在母版页上实现,或者只需要您需要https的所有页面。通过检查“localhost”,您将避免在测试环境中出现错误(除非您的测试服务器有另一个名称,而不是检查:“mytestservername”)。

答案 3 :(得分:5)

免责声明 - 我参与了这个项目的开发

我建议使用http://nuget.org/packages/SecurePages/它使您能够保护特定页面或使用Regex来定义匹配。它还会强制所有与Regex不匹配或直接指定的页面返回HTTP。

您可以通过NuGet安装它:Install-Package SecurePages

文档在这里:https://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages

简单用法:

SecurePagesConfiguration.Urls.AddUrl("/cart");

SecurePagesConfiguration.Urls.AddRegex(@"(.*)account", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);

答案 4 :(得分:3)

您可以在IIS配置中启用HTTPS,但除非您获得SSL证书并将其插入IIS,否则它不会是“安全的”。确保端口443处于打开状态。