我为表单身份验证+匿名访问设置了一个网站。
当用户请求任何页面(托管资源,如.aspx页面)时,他会被重定向到Logon.aspx
如果资源不受管理,例如.html,.png,.jpg等文件,则会出现问题。 当用户尝试使用URL直接访问此类资源时,他可以在不进行任何身份验证的情况下查看这些资源。 他没有被重定向到LogOn.aspx页面。
我试过以下:
**通过模块中的changin设置更改IIS 7.5中的设置,编辑DefaultAuthentication和FormsAuthentication的托管模块。
当我取消选中“仅针对ASP.NET应用程序或托管处理程序的请求调用”复选框并保存时,我收到一条警告消息,如下所示。
“在此应用程序的引用程序集中找不到指定的类型。请确保将程序集添加到此应用程序的web.config的system.web / compilation部分中的程序集列表中。是否仍然需要继续吗?“
我在博客上看到我们可以忽略此警告消息,并在警告消息中单击“是”选项以保存设置。
保存更改后,这会在Web.config中添加以下行:
<remove name="DefaultAuthentication" />
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="" />
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="" />
在这些更改之后,用户仍然可以在不进行任何身份验证的情况下查看非托管资源。
这里有什么我想念的吗?还有其他方法可以达到这个目的吗?
答案 0 :(得分:0)
如果是web.config,则可以通过在system.webServer部分的modules部分中将runAllManagedModulesForAllRequests设置为true来强制Web服务器运行静态文件的所有托管模块(包括表单模块)。
缺点是运行静态数据模块会降低服务器速度,但您肯定会获得所需的效果。