基于角色(Role-Based)的表单验证

时间:2010-03-03 12:19:41  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:nbsp;   目录         +admin1    -default.aspx    -web.config //web.config#1   +admin2    -default.aspx    -web.config//web.config#2   +bin   -web.config//web.config#root  &n...
  正文:要求:
  using System.Web.Security
  using System.Security.Principal
  
  [Principal]:主要的(这里怎样翻译呢??)
  ==================================
  
  目录
  
  
  +admin1
   -default.ASP/ target=_blank class=infotextkey>aspx
   -web.config //web.config#1
  +admin2
   -default.aspx
   -web.config//web.config#2
  +bin
  -web.config//web.config#root
  -login.aspx
  
  
  ==========================
  目的:
  admin1文件夹:只有role是administrator可以访问.
  admini2文件夹:只有role是controler可以访问.
  
  帐号,密码,角色存储在特定数据库中.
  
  本例目的(其他道理相同):
  caca是administrator
  wawa是controler
  所以caca可以访问admin1,不能访问admin2;wawa反之.
  
  ==========================
  配置:
  (1)web.config#root
  
  
  <?xml version="1.0" encoding="utf-8"?>
  <configuration>
   <system.web>
   <authentication mode="Forms">
   <forms name="authenticationcookie"
  loginUrl="login.aspx" protection="All" path="/" timeout="40"/>
   </authentication>
   </system.web>
  </configuration>
  
  (2)web.config#1
  
  
  <?xml version="1.0" encoding="utf-8"?>
  <configuration>
   <system.web>
   <authorization>
   <allow roles="administrator"/>
   <deny users="*"/>
   </authorization>
   </system.web>
  </configuration>
  
  (3)web.config#2
  
  
  <?xml version="1.0" encoding="utf-8"?>
  <configuration>
   <system.web>
   <authorization>
   <allow roles="controler"/>
   <deny users="*"/>
   </authorization>
   </system.web>
  </configuration>
  
  ==========================
  关键代码:
  (1)login.aspx
  
  
  <script language=c# runat=server>
  private void signin(Object sender,EventArgs e)
  {
   string aRole="guest";
   if(tbName.Text=="caca")aRole="administrator";
   if(tbName.Text=="wawa")aRole="controler";
  
  
  //建立role-based认证票据(我认为本质是cookie)
   FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
   1, // version(版本?)
   tbName.Text, // user name(可能是生成票据验证cookie的名称)
   DateTime.Now, // creation(票据产生时间)
   DateTime.Now.AddMinutes(40),// Expiration(票据cookie失效时间)
   false, // Persistent(这个应该是票据的保留时间)
   aRole ); // User data(角色)
  //修改票据cookie,使其加密(本质是写入一个与票据cookie同名的新cookie)
基于角色(Role-Based)的表单验证》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12999.html


关键字:

关于《基于角色(Role-Based)的表单验证》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td