asp.net中的窗体身份验证(验证HTML文件)

    在前面的几篇文章中介绍了asp.net的窗体身份验证,这种身份验证方式可以让通过验证的用户访问指定的目录,而没有通过验证的用户不能访问该目录下的网页。

    但是,有一种例外,就是目录中的html文件例外。例如,在《asp.net中的窗体身份验证(最简单篇)》中介绍的,除了登录网页之外,所有网页都必须在登录之后才能访问,但如果在网站中添加一个HTMLPage.htm文件,访问该文件是不需要身份验证的。如下图所示:

 1.jpg

 2.jpg

    之所以出现这种情况,是由IIS的访问机制决定的。当客户端浏览器向Web服务器发送请求时,Web服务器会对所请求的文件的扩展名进行检查,然后决定由哪个ISAPI扩展处理这个请求,然后将请求传递给该ISAPI扩展。而asp.net事实上也就是一个ISAPI扩展,对于asp1.1而言,这个扩展文件为:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,对于asp2.0而言,这个扩展文件为:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll。

    很不幸的是:asp.net映身的扩展名有.aspx、.ascx、.ashx、.asmx,就是没有.htm和.html。所以,如果受限目录中包括.htm和.html网页时,asp.net是不会对其进行处理的。只要用户可以通过IIS的权限控制,就可以访问这些文件。

    找到原因就好办了,如果想要让.htm文件和.html文件也受asp.net控制,那么,就必须添加映射。添加方法如下所示:

    1、在IIS中找到网站或虚拟目录,右击,选择属性,打开如下图所示窗口。

 3.jpg

    2、单击“配置”按钮,弹出下图窗口。

 4.jpg

    3、单击“添加”按钮,打开如下窗口。

 5.jpg

    4、在可执行文件中输入“C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll”(asp.net1.1)或“c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll”(asp.net 2.0),在扩展名中输入“htm”或“html”,注意前面不用加“.”。然后点确定。

    5、重启一下IIS,再访问刚才的html文件,如下图所示,现在要求登录了,而且在URL中也可以看到ReturnUrl参数值为htm文件。

 6.jpg

=============================

 

转载于:https://www.cnblogs.com/mcsm/articles/1799555.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值