ASP.NET几种安全验证方法(二)

转载 2011年01月10日 19:47:00
ASP.NET几种安全验证方法(二)
七、 分散与集中

乍看之下,就象是马克思列宁主义、毛泽东思想、邓小平理论中的辩证关系,大伙放心,偶是学理科的,只明白“高举程序员的伟大旗帜,以编写代码为中心”。停……

到目前为此,我们的测试项目“FormTest”已经拥有两个目录三个 Web.config ,伴随用户需求的多样化,Web.config 也会越来越多,比如常用的文件上传功能等等。众多的 Web.config 分布在不同的目录里面,维护起来肯定比较烦人。能不能集中起来管理呢,应该咋办哩?“办法是……”哟,有人先说出来啦。不错,“办法的确是人想出来滴” ,我不说,你是不是只有在一边凉伴?开玩笑的,为了让更多的人记住这句话,我打算告诉你集中管理的办法。

要想集中管理,不得不用到 <location> 节点与 path 属性。在本项目中,我们将目录 Public 与 ManageSys 下的设置放在根目录下的 Web.config 里面,如下:

<&xml version="1.0" encoding="utf-8"&>

<configuration>

<location path ="Public">

<system.web>

<authorization>

<allow users="*"/>

</authorization>

</system.web>

</location>

<location path ="ManageSys">

<system.web>

<authorization>

<allow users="Admin"/>

<deny users="*"/>

</authorization>

</system.web>

</location>

<system.web>

<!-- 这里放置原来根目录 Web.config 的内容,就不列出来了 -->

</system.web>

</configuration>

需要提醒的是

1、 <location> 节点的位置是在 <configuration> 的一个子节点,它与原有的 <system.web> 属于并列关系

2、 <location> 节点只需要放入对应子目录 Web.config 中的 <system.web> 的节点内容

八、 额外的保护


第二部分就要结束了,现在时间已是凌晨 4 点50分,我容易嘛我。认证的目的就是为了防止他人非法浏览页面,或未经许可使用某些功能。当然,世上没有绝对的安全,如今 MD5 加密都被我们国人给破解了,就是最好的例证。

细心的人可能早就发现 ASP.NET 的安全认证只针对 .aspx、.ascx …… 等 ASP.NET 文件起作用,而对普通页面与文件却“视而不见”,如 .htm、.js 、.jpg 等。通过以下步骤你就可以保护你想保护的文件类型。

1、 打开 Internet 信息服务(IIS)管理器 → 右击本项目虚拟 → 属性,如下图

(screen.width-461) window.open('http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm01.JPG');" src="http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm01.JPG" border=0>)

2、 点击按钮“配置”,出现如下对话框:

(screen.width-461) window.open('http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm02.JPG');" src="http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm02.JPG" border=0>)

3、 双击 .aspx 的应用程序扩展 → 查看对话框内容,如下图:

(screen.width-461) window.open('http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm03.JPG');" src="http://blog.csdn.net/images/blog_csdn_net/cityhunter172/85935/r_aspxForm03.JPG" border=0>)

4、 复制“可执行文件”的全路径名称后 → 点击“取消”返回上一层对话框 → 点击按钮“添加”

5、 粘贴刚才复制的内容(我的系统装在 D 盘,所以内容为 D:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/aspnet_isapi.dll ) → 填写后缀名为 .htm → 填写动作限制为“GET,HEAD,POST,DEBUG”(为方便省事你可选全部)

6、 最后点击“确定” → 往项目中添加 HtmlPage1.htm → 在 IE 浏览器的地址栏直接输入http://localhost/FormTest/HtmlPage1.htm → 观看测试效果

最后送大家一段 Web.config 设置,发完睡觉,实在是困的不行了。

<location path ="决战紫禁城">

<system.web>

<authorization>

<allow users="叶孤城"/>

<allow users="西门吹雪"/>

<deny users="*"/>

</authorization>

</system.web>

</location>

<location path ="金銮殿屋脊">

<system.web>

<authorization>

<allow users="腰系缎带之人"/>

<deny users="*"/>

</authorization>

</system.web>

</location>
ASP.NET 安全认证(三)

看了之后,再写点自己的做法(属于初学级别)

其实<location> 并不只对文件夹管用,对页面也很管用,如果有页面不需要验证(比如说default.aspx),直接在<location>节点下这样写:

<location path="Home.aspx">
<system.web>
<authorization>
<allow users="&" />
</authorization>
</system.web>
.............
(中间很可以加上很多权限控制的页面)
..............
</location>

达到的效果是一样的。以下是贴MSDN上的内容。

<location path="path"
allowOverride="true|false"/>

可选属性

属性选项说明

path 应用指定配置设置的资源。使用缺少路径属性的 <location> 将配置设置应用于当前目录及其所有子目 录。如果 <location> 不使用 path 属性,并且 allowOverride 被指定为 false,则不能通过子目录中的 Web.config 文件更改配置设置。

allowOverride 指定配置设置是否可以被子目录中的 Web.config 文件的配置设置重写。
true指定配置设置可以被重写。默认值为 true。
false指定配置设置不可以被重写。

示例
以下示例允许匿名用户访问 Logon.aspx 页。
<configuration>
<location path="Logon.aspx">
<system.web>
<authorization>
<allow users="&"/>
</authorization>
</system.web>
</location>
</configuration>

以下示例仅将指定页的上载文件大小限制设置为 128KB。
<configuration>
<location path="UploadPage.aspx">
<httpRuntime maxRequestLength="128"/>
</location>
</configuration>

以下示例防止配置设置被子目录中的 Web.config 文件更改。
<configuration>
<location allowOverride="false"/>
</configuration>

相关文章推荐

ASP.NET身份验证——Form身份认证

细说ASP.NET Forms身份认证 用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证。 由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的事。 ...

Node爬坑记——伪造cookie

写在前面 在没有引入NodeJS层之前,客户端和服务端之前的数据传输可以用Ajax来完成,而且服务端可以直接读取客户端请求头携带的cookie,这个直接走 HTTP 协议,没有任何问题。但是当引入了...

ASP.NET几种安全验证方法(一)

ASP.NET几种安全验证方法(一) 如何运用 Form 表单认证 ASP.NET 的安全认证,共有“Windows”“Form”“Passport”“None”四种验证模式。...

ASP.NET 页面间传值的几种方法

  • 2009年07月14日 10:07
  • 33KB
  • 下载

ASP.NET Web API(二):安全验证之使用HTTP基本认证

在前一篇文章ASP.NET Web API(一):使用初探,GET和POST数据中,我们初步接触了微软的REST API: Web API。 我们在接触了Web API的后就立马发现了有安全验证...

asp.net传参数的几种方法

  • 2010年08月15日 08:13
  • 41KB
  • 下载

Asp.Net中清空所有textbox的几种方法

http://jhxk.iteye.com/blog/442739

ASP.NET的几种页面传值方法

  • 2010年05月17日 11:20
  • 33KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET几种安全验证方法(二)
举报原因:
原因补充:

(最多只允许输入30个字)