关闭

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

572人阅读 评论(0) 收藏 举报
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>
0
0
查看评论

asp.net几种安全验证方式

ASP.NET几种安全验证方法[转] 如何运用 Form 表单认证 ASP.NET 的安全认证,共有“Windows”“Form”“Passport”“None”四种验证模式。“Windows”与“None”没有起到保护的作用,不推荐使用;“Passport”我又没用过,唉……所以我只好讲讲“For...
  • liyong11111
  • liyong11111
  • 2007-12-18 19:51
  • 987

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

ASP.NET几种安全验证方法(二) 七、 分散与集中 乍看之下,就象是马克思列宁主义、毛泽东思想、邓小平理论中的辩证关系,大伙放心,偶是学理科的,只明白“高举程序员的伟大旗帜,以编写代码为中心”。停…… 到目前为此,我们的测试项目“FormTest”已经拥有两个目录三个 ...
  • GoodShot
  • GoodShot
  • 2010-10-15 09:37
  • 540

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

ASP.NET几种安全验证方法(一) 如何运用 Form 表单认证 ASP.NET 的安全认证,共有“Windows”“Form”“Passport”“None”四种验证模式。“Windows”与“None”没有起到保护的作用,不推荐使用;“Passport”我又没用过,唉……所以我...
  • GoodShot
  • GoodShot
  • 2010-10-15 09:38
  • 731

asp.net几种安全验证方式

ASP.NET几种安全验证方法[转] 如何运用 Form 表单认证 ASP.NET 的安全认证,共有“Windows”“Form”“Passport”“None”四种验证模式。“Windows”与“None”没有起到保护的作用,不推荐使用;“Passport”我又没用过,唉……所以我只好讲讲“For...
  • divingmaomao
  • divingmaomao
  • 2008-02-22 16:44
  • 509

Asp.Net MVC 4 Web API 中的安全认证---使用OAuth

//  Oauth授权处理 http://www.cnblogs.com/n-pei/archive/2012/05/29/2524673.html#undefined 各种语言实现的oauth认证: http://oauth.net/code/
  • Denghejing
  • Denghejing
  • 2016-09-09 14:51
  • 1208

asp.net webservice 安全 验证

做了一段时间的webservice,跨平台,标准化,等优点就不多说了,可是缺点也有很多。 特别是安全问题上,只要是知道webservice地址通过asp.net 的web服务就能访问,而且方法都是显性的,这样觉的很不安全。 今天,我们来实现在WebService中加入安全验证机制,这样就有了一级...
  • lzy_1515
  • lzy_1515
  • 2011-11-29 14:52
  • 4301

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

原地址:http://www.cnblogs.com/parry/archive/2012/11/09/ASPNET_MVC_Web_API_HTTP_Basic_Authorize.html#2701108 在前一篇文章ASP.NET Web API(一):使用初探,GET和POST...
  • Shiyaru1314
  • Shiyaru1314
  • 2016-01-12 13:21
  • 3236

webservice安全验证

大致可分为下面几种: (1)身份验证和属性控制,可以集成Windows验证、域服务器验证、.Net Passport验证。 (2)IP域名限制,只允许特定的ip或者域内机器访问,对非法的请求进行过滤, (3)安全通信设置,用户可以启用Web服务器证书,采用SSL对网络传递的信...
  • zouluyifang
  • zouluyifang
  • 2016-05-26 08:44
  • 629

ASP.NET 安全认证(Form 认证)

作者:寒羽枫(cityhunter172) 原文链接:http://www.cnblogs.com/Gavinzhao/archive/2009/10/29/1591795.html 代码写 N久了,总想写得别的。这不,上头说在整合两个项目,做成单一登录(Single Sign On),也有人称...
  • bdstjk
  • bdstjk
  • 2011-11-22 22:10
  • 5947

asp.net中常用的几种页面间传递参数的方法,及各自优缺点

1、页面重定向方式中常用的两 (1)Redirect 方法将客户端重定向到新的页面,只是简单地终止当前页面,并转入新的页面开始执行,对转入的页面无任何限制。 (2)Transfer 方法终止当前页的执行,并为当前请求开始执行新的页面。把执行流程从当前页面转到同一服务器中...
  • yh_bxhl
  • yh_bxhl
  • 2012-07-25 21:35
  • 3583
    个人资料
    • 访问:2568607次
    • 积分:26490
    • 等级:
    • 排名:第260名
    • 原创:262篇
    • 转载:815篇
    • 译文:3篇
    • 评论:153条