页面需要HTTP;ASP.NET授权需要HTTPS

  • 本文关键字:NET 授权 HTTPS ASP HTTP asp.net
  • 更新时间 :
  • 英文 :


在Azure上托管的ASP.NET网站上,我需要保护页面的安全,以便只有特定用户才能访问它。由于页面中使用了javascript库,它只有在通过HTTP提供服务时才能正常工作,但除非页面通过HTTPS提供服务,否则ASP.NET身份验证将不允许访问。

为了限制对安全页面的访问,我在包含该页面的文件夹中添加了一个Web.config文件:

 <configuration>
   <system.web>
     <authorization>
       <allow roles="Admin" />
       <allow roles="Map Viewer" />
       <deny users="*" />
     </authorization>
   </system.web>
 </configuration>

web.config主文件设置表单身份验证。

<authentication mode="Forms">
  <forms loginUrl="~/account/login/"
         requireSSL="true"
         timeout="2880" />
</authentication>

如果您通过https(例如。https://example.com/Map)。系统会提示您登录,输入凭据,然后转到页面。如上所述,如果通过http提供服务,该页面将无法正常工作。但是,ASP.NET身份验证/授权不允许您访问它:1.如果您没有登录并尝试通过http访问该页面,则登录后会重定向到网站主页。2.如果你已经登录并试图通过http访问页面,即使你已经登录,也会显示登录屏幕。

该网站上没有其他安全页面需要HTTP才能正常工作,多年来,这种基于表单的身份验证过程一直适用于这些页面。

requireSSL属性设置为false,或将其删除(如果未指定值,则requireSSL为false)。如果requireSSL设置为true,则服务器将不接受身份验证cookie,除非它们通过HTTPS连接发送到服务器。删除此属性后,服务器将接受来自HTTP和HTTPS的身份验证cookie。

最新更新