您的位置:首页 > 编程语言 > ASP

ASP.NET 下web.config Forms身份验证的配置

2010-11-01 23:05 671 查看
在webconfig中有一个重要节点 其中包括了一个身份验证配置节点

其中 authentication 是节点名,mode是模式,上述代码表示
采用windows身份验证,那么此时身份验证将交给iis处理,而iis中默认设

a、使mode为 Forms
则表示是用Forms身份验证
b、defaultUrl ="default.aspx"
表示默认页面是default.aspx
c、loginUrl="login.aspx"
表示登陆页面是login.aspx
d、protection="All" 表示
保护所有页面,但不能保护html页面,只能保护aspx页面。
e、

节点中 deny
users="?" 表示拒绝所有匿名用户,也就是说必须通过验证的用户才可以跳转到默认页或由程序指定一个跳转页,其中 "?" 表示匿名用户,也可以设置为 "*"
表示所有用户,或则指定一个用户名。
f、timeout
表示有效时间。
在登陆页面中,登陆按钮事件必须使用如下代码才能跳转

FormsAuthentication.RedirectfromLoginPage("luby", false);
引用的命名空间是
System.Web.Security;
RedirectfromLoginPage表示将经过身份验证的用户重定向到最初请求的页面,第一参数表示名称,此名称今后在本站点的任何页面都可以用
User.Identity.Name
来获取到,第二个参数表示是否要持久化cookie,也就是说是否下次不需要输入密码验证就可以自动登陆,直到用户主动退出。
退出按钮必须使用如下代码,命名空间同样是
System.Web.Security;
FormsAuthentication.SignOut();

web.config中如何只针对一个子目录设置验证

在子目录"usr"下面,新建一个web.config文件:
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web >
</configuration>

你也可以不用在每一个子目录中新那一个web.config文件,在根目录下的web.config也也可以设置,象这样:

<configuration>
<system.web>
<authentication mode="Forms" >
<forms name="WebdiyerLoginForm" loginUrl="Login.aspx"></forms>
</authentication></system.web>

<location path="test">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>

</configuration>
其中的location配置节即可用来控制某个子目录或文件的访问,path值即是要限制访问的文件名(带后缀)或文件夹名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: