it技术博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

该文讲解了通过web.config配置文件配置项目下文件夹的访问权限问题。

新建一个web运用程序,项目结构如下:

 

其中Manager文件夹的ASP.NET页面属于管理员操作页面,所有只用通过登录并授权后才能访问,而根目录下面的ASP.NET页面则任何用户都可以访问,如Default.aspx页面。

 

首先修改根目录下的web.config配置文件,将默认的windows验证方式修改为Forms验证方式。在web.config配置文件中,将

  1. <authentication mode="Windows" />  

 

修改为:

  1. <!--设置认证方式为Forms认证-->  
  2. <authentication mode="Forms">  
  3.   <!--指定认证表单-->  
  4.     <forms loginUrl="~/Manager/Login.aspx" defaultUrl="~/Manager/Index_Manager.aspx" protection="All"></forms>  
  5. </authentication>  
  6. <!--授权:设置该配置文件同级目录下的所有ASP.NET资源的访问权限-->  
  7. <authorization>  
  8.   <!--设置为允许所有用户访问-->  
  9.     <allow users="*"/>  
  10. </authorization>  

 

 

然后在Manager文件下面添加新的web.config配置文件,该文件旨在重写外面的web.config——配置同级目录下的asp.net资源访问权限(在图中可以看到项目下有两个web.config配置文件),修改新添加的配置文件,修改结果如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!--   
  3.     注意: 除了手动编辑此文件以外,您还可以使用   
  4.     Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的  
  5.      “网站”->“Asp.Net 配置”选项。  
  6.     设置和注释的完整列表在   
  7.     machine.config.comments 中,该文件通常位于   
  8.     /Windows/Microsoft.Net/Framework/v2.x/Config 中  
  9. -->  
  10. <configuration>  
  11.   <!--  
  12.   <appSettings/>  
  13.   <connectionStrings/>  
  14.   -->  
  15.   <system.web>  
  16.     <!--添加授权-->  
  17.     <authorization>  
  18.       <!--阻止匿名用户访问-->  
  19.       <deny users="?"/>  
  20.     </authorization>  
  21.   </system.web>  
  22. </configuration>  

 

至此,配置文件都修改完成了,但是还需要有登录授权部分。

 

下面我们通过Manager文件下面的Login.aspx登录页面给通过验证的用户授权。

在Login.aspx的登录按钮的单击事件里

  1. protected void btnLogin_Click(object sender, EventArgs e)  
  2. {  
  3.     //如果用户通过验证   
  4.     if (txtUserName.Text.Trim() == "qingyun" && txtPwd.Text.Trim() == "123456")  
  5.     {  
  6.         //授权   
  7.         FormsAuthentication.SetAuthCookie(txtUserName.Text.Trim(), false);  
  8.         //登录后跳转   
  9.         Response.Redirect("~/Manager/Index_Manager.aspx");  
  10.     }  
  11. }  
posted on 2011-11-10 11:03  ie技术博客  阅读(2489)  评论(0编辑  收藏  举报