我希望我的用户只能通过SSL访问特定的asp.net虚拟目录。 web.config中是否有一个允许我指定的选项?
答案 0 :(得分:2)
您可以在IIS7中执行此操作。转到应用程序的SSL设置,您将看到带有“需要SSL”选项的复选框,选中复选框并完成您的工作。现在您的网站只能从https访问,而不能从http访问。 请记住,您需要拥有SSL证书,否则浏览器会为您的网站显示一些警告消息。 而且..我认为你不能用web.config来实现这个目标。
编辑:示例代码
使用Global.asax文件可以进行完全自定义。您可以添加特定条件并应用https或http。下面的示例代码显示,如果页面是登录/结帐,如果连接不安全,则从http重定向到https,我也可能不需要https作为联系页面。
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if ((Request.Path.EndsWith("login.aspx") || Request.Path.EndsWith("checkout.aspx") ) && !Request.IsSecureConnection)
{
Response.Redirect(Request.Url.AbsoluteUri.Replace("http:", "https:"));
}
else if (Request.IsSecureConnection && !Request.Path.EndsWith("contact.aspx"))
{
Response.Redirect(Request.Url.AbsoluteUri.Replace("https:", "http:"));
}
}
答案 1 :(得分:0)
我通过简单的更改来解决了该问题。
设置 requireSSL =“ true”
请参阅我在web.config中添加的以下行
<httpCookies httpOnlyCookies="true" requireSSL="true" sameSite="Lax" />