首页 > 编程 > .NET > 正文

asp.net中使用基于角色的身份Forms验证,大致分为四个步骤

2024-07-10 13:05:46
字体:
来源:转载
供稿:网友

asp.net中使用基于角色的身份forms验证,大致分为四个步骤
1.配置系统文件web.config
<system.web>
<authentication mode="forms" >
 <forms name=".yaocookies" loginurl="/duan/manage/login.aspx" protection="all"
  timeout="20" path="/" />
 </authentication>
</system.web>
<forms>标签中的name表示指定要用于身份验证的 http cookie. 默认情况下,name 的值是 .aspxauth。采用此种方式验证用户后,以此用户的信息建立一个formsauthenticationticket类型的身份验证票,再加密序列化为一个字符串,最后将这个字符串写到客户端的name指定名字的cookie中.一旦这个cookie写到客户端后,此用户再次访问这个web应用时会将连同cookie一起发送到服务端,服务端将会知道此用户是已经验证过的.
<forms>标签中的loginurl指没有经过身份验证的用户将会自动的定向到loginurl所指向的路径. 如果验证用户有效,则生成同此用户对应的身份验证票,写到客户端的cookie,最后将浏览器重定向到用户初试请求的页面.其中用system.web.security.formsauthentication.redirectfromloginpage ()方法实现重定向.
<forms>标签中的timeout和path,是提供了身份验证票写入到cookie过期时间和默认路径
2.在受保护的文件夹如manage下创建一web.config文件,内容如
<configuration>
  <!--指定对整个manage目录的访问权限-->
  <system.web>
     <authorization>
           <!--多个角色用,分隔-->
           <allow roles="admin,user"/>
           <deny users="*" />
       </authorization>
  </system.web>

  <!--也可控制某个页的权限

  <location path="announcelist.aspx">
     <system.web>
        <authorization>
           <allow roles="admin"/>
           <deny users="*" />
        </authorization>
     </system.web>
  </location>

  <location path="configinfo.aspx">
     <system.web>
        <authorization>
           <allow roles="users"/>
           <deny users="*" />
        </authorization>
     </system.web>
  </location>

  -->
</configuration>
注:此配置内容也可以加入到系统的web.config文件中,注意加入位置:
........
    </system.web>

    <location path="manage/announcelist.aspx">
     <system.web>
      <authorization>
       <allow roles="admin"/>
       <deny users="*" />
      </authorization>
     </system.web>
    </location>

</configuration>
 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表