中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 其他
在ASP.NET中创建安全的web站点(1)
作者:佚名 时间:2007-09-04 15:27 出处:csdn 责编:月夜寒箫
              摘要:在ASP.NET中创建安全的web站点(1)

以前用ASP,PHP,JSP编写网站代码的时候,站点安全性总是一件头疼的事情,虽然我们编写了用户登录,注册,验证页面,但是效果总是不理想。有时候我们不得不用大量的session变量来存放相关信息,处处设防。而在.NET环境下,这个问题处理起来就非常容易了。关键是要充分理解web.config文件。首先,介绍一下web.config文件。

            

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

<configuration>   



<system.web>   



<!-- 动态调试编译

设置 compilation debug="true" 以将调试符号(.pdb 信息)

插入到编译页中。因为这将创建执行起来

较慢的大文件,所以应该只在调试时将该值设置为 true,而所有其他时候都设置为

false。有关更多信息,请参考有关

调试 ASP.NET 文件的文档。

-->

<compilation defaultLanguage="vb" debug="true" />



<!-- 自定义错误信息

设置 customErrors mode="On" 或 "RemoteOnly"

以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。

为每个要处理的错误添加 <error> 标记。

-->

<customErrors mode="RemoteOnly" />



<!-- 身份验证

此节设置应用程序的身份验证策略。可能的模式是 \“Windows\”、

\“Forms\”、\“Passport\”和 \“None\”

-->

<authentication mode="Windows" />    



<!-- 授权

此节设置应用程序的授权策略。可以允许或拒绝用户或角色访问

应用程序资源。通配符:"*" 表示任何人,"?" 表示匿名

(未授权的)用户。

-->

<authorization>

<allow users="*" /> <!-- 允许所有用户 -->



<!-- <allow users="[逗号分隔的用户列表]"

roles="[逗号分隔的角色列表]"/>

<deny users="[逗号分隔的用户列表]"

roles="[逗号分隔的角色列表]"/>

-->

</authorization>



<!-- 应用程序级别跟踪记录

应用程序级别跟踪在应用程序内为每一页启用跟踪日志输出。

设置 trace enabled="true" 以启用应用程序跟踪记录。如果 pageOutput="true",则

跟踪信息将显示在每一页的底部。否则,可以通过从 Web 应用程序

根浏览 "trace.axd" 页来查看

应用程序跟踪日志。

-->

<trace enabled="false" requestLimit="10" pageOutput="false"

traceMode="SortByTime" localOnly="true" />    



<!-- 会话状态设置

默认情况下,ASP.NET 使用 cookie 标识哪些请求属于特定的会话。

如果 cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。

若要禁用 cookie,请设置 sessionState cookieless="true"。

-->

<sessionState

mode="InProc"

stateConnectionString="tcpip=127.0.0.1:42424"

sqlConnectionString="data source=127.0.0.1;user id=sa;password="

cookieless="false"

timeout="20"

/>



<!-- 全球化

此节设置应用程序的全球化设置。

-->

<globalization requestEncoding="utf-8" responseEncoding="utf-8" />



</system.web>



</configuration> 

   

好了,相信看过上面的介绍以后,对web.config文件一定非常了解了吧。下面我们就切入主题。为了防止用户没有经过验证就访问站点,我们的处理方法是当用户没有通过验证的时候点击任何页面将会直接跳到Login.aspx页面,具体代码如下:

            

<authentication mode="Forms">

<forms name="yourAuthCookie" loginUrl="login.aspx"

protection="All" path="/" />

</authentication>

<authorization>

<deny users="?" />

</authorization>

   

但是这样会产生一个问题,那就是如果我的站点有一些信息是可以让任意用户随意访问的,比如站点简介,使用说明等。如果按照上面的处理方法岂不让用户觉得很麻烦,呵呵,不急,在ASP.NET中自然有相应的解决办法。下面的代码可以实现匿名用户访问Test.aspx页面: 

            

<location path="test.aspx">

<system.web>

<authorization>

<allow users="?" />

</authorization>

</system.web>

</location>

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有