天天看点

通过web.config文件配置项目中文件夹的访问权限

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

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

通过web.config文件配置项目中文件夹的访问权限

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

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

<authentication mode="Windows" />

修改为:

<!--设置认证方式为Forms认证-->

<authentication mode="Forms">

<!--指定认证表单-->

<forms loginUrl="~/Manager/Login.aspx" defaultUrl="~/Manager/Index_Manager.aspx" protection="All"></forms>

</authentication>

<!--授权:设置该配置文件同级目录下的所有ASP.NET资源的访问权限-->

<authorization>

<!--设置为允许所有用户访问-->

<allow users="*"/>

</authorization>

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

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

<!--

注意: 除了手动编辑此文件以外,您还可以使用

Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的

“网站”->“Asp.Net 配置”选项。

设置和注释的完整列表在

machine.config.comments 中,该文件通常位于

/Windows/Microsoft.Net/Framework/v2.x/Config 中

-->

<configuration>

<!--

<appSettings/>

<connectionStrings/>

-->

<system.web>

<!--添加授权-->

<authorization>

<!--阻止匿名用户访问-->

<deny users="?"/>

</authorization>

</system.web>

</configuration>

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

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

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

protected void btnLogin_Click(object sender, EventArgs e)

{

//如果用户通过验证

if (txtUserName.Text.Trim() == "qingyun" && txtPwd.Text.Trim() == "123456")

{

//授权

FormsAuthentication.SetAuthCookie(txtUserName.Text.Trim(), false);

//登录后跳转

Response.Redirect("~/Manager/Index_Manager.aspx");

}

至此全部完成! 

另外,以前写过一篇关于通过web.config文件配置项目中文件的访问权限的blog,有兴趣的朋友可以对比一下。

上一篇地址:http://blog.csdn.net/qingYun1029/archive/2011/02/14/6184723.aspx

继续阅读