| 订阅 | 在线投稿
分享
 
 
当前位置: 王朝网络 >> asp >> Asp.Net基于forms的验证机制 Asp.Net ji yu forms de yan zheng ji zhi
 

Asp.Net基于forms的验证机制

2008-12-13 08:24:11 编辑來源:互联网 繁體版 评论
 
 
本文为【Asp.Net基于forms的验证机制】的汉字拼音对照版显示拼音
  xiangmuxuyaoyanjiulexiaAsp.Netdejiyuformsdeyanzhengjizhi

  goujianjiyuformsdeyanzhengjizhiguochengruxia

  1,shezhiIISweikeniming访fangwenheasp.net web.configzhongshezhiweiformyanzheng

  2,jiansuoshujucunchuyanzhengyonghubingjiansuojiaose(ruguobushijiyujiaosekebuyong)

  jiandanwurolefangshi

  使shiyongFormsAuthenticationTicketchuangjianyigeCookiebinghuifadaokehuduanbingcunchu jiaosedaopiaozhongru

  FormsAuthentication.SetAuthCookie(Username,true | false)

  cookiesbaocunshijian

  HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.Now.AddDays(1)

  ruguoxuyaocunchujiaosefangshiview plaincopy to clipboardprint?

  FormsAuthenticationTicket authTicket = new

  FormsAuthenticationTicket(

  1, // version

  txtUserName.Text, // user name

  DateTime.Now, // creation

  DateTime.Now.AddMinutes(20),// Expiration

  false, // Persistent

  roles ); // User data

  //rolesshiyigejiaosezifuchuanshuzu

  string encryptedTicket = FormsAuthentication.Encrypt(authTicket); //jiami

  FormsAuthenticationTicket authTicket = new

  FormsAuthenticationTicket(

  1, // version

  txtUserName.Text, // user name

  DateTime.Now, // creation

  DateTime.Now.AddMinutes(20),// Expiration

  false, // Persistent

  roles ); // User data

  //rolesshiyigejiaosezifuchuanshuzu

  string encryptedTicket = FormsAuthentication.Encrypt(authTicket); //jiami cunruCookie view plaincopy to clipboardprint?

  HttpCookie authCookie =

  new HttpCookie(FormsAuthentication.FormsCookieName,

  encryptedTicket);

  

  Response.Cookies.Add(authCookie);

  HttpCookie authCookie =

  new HttpCookie(FormsAuthentication.FormsCookieName,

  encryptedTicket);

  Response.Cookies.Add(authCookie); zaiApplication_AuthenticateRequestshijianzhongchulichengxuzhong(Global.asax)zhong使shiyongpiaochuangjianIPrincipalduixiangbingcunzaiHttpContext.Userzhongdaima view plaincopy to clipboardprint?

  protected void Application_AuthorizeRequest(object sender, System.EventArgs e)

  {

  HttpApplication App = (HttpApplication) sender;

  HttpContext Ctx = App.Context ; //huoqubenciHttpqingqiuxiangguandeHttpContextduixiang

  if (Ctx.Request.IsAuthenticated == true) //yanzhengguodeyonghucaijinxingroledechuli

  {

  FormsIdentity Id = (FormsIdentity)Ctx.User.Identity ;

  FormsAuthenticationTicket Ticket = Id.Ticket ; //qudeshenfenyanzhengpiao

  string[] Roles = Ticket.UserData.Split (',') ; //jiangshenfenyanzhengpiaozhongderoleshujuzhuanchengzifuchuanshuzu

  Ctx.User = new GenericPrincipal (Id, Roles) ; //jiangyuanyoudeIdentityjiashangjiaosexinxixinjianyigeGenericPrincipalbiaoshidangqianyonghu,zheyangdangqianyonghujiuyongyoulerolexinxi

  }

  }

  protected void Application_AuthorizeRequest(object sender, System.EventArgs e)

  {

  HttpApplication App = (HttpApplication) sender;

  HttpContext Ctx = App.Context ; //huoqubenciHttpqingqiuxiangguandeHttpContextduixiang

  if (Ctx.Request.IsAuthenticated == true) //yanzhengguodeyonghucaijinxingroledechuli

  {

  FormsIdentity Id = (FormsIdentity)Ctx.User.Identity ;

  FormsAuthenticationTicket Ticket = Id.Ticket ; //qudeshenfenyanzhengpiao

  string[] Roles = Ticket.UserData.Split (',') ; //jiangshenfenyanzhengpiaozhongderoleshujuzhuanchengzifuchuanshuzu

  Ctx.User = new GenericPrincipal (Id, Roles) ; //jiangyuanyoudeIdentityjiashangjiaosexinxixinjianyigeGenericPrincipalbiaoshidangqianyonghu,zheyangdangqianyonghujiuyongyoulerolexinxi

  }

  }xuyaoduimouxieyemianjinxingjiaosekongzhiyouliangzhongfangfa

  1web.configzhongjia view plaincopy to clipboardprint?

  <location path="EditPost.aspx">

  <system.web>

  <authorization>

  <allow roles="RoleName" />

  <deny users="?" />

  </authorization>

  </system.web>

  </location>

  <location path="EditPost.aspx">

  <system.web>

  <authorization>

  <allow roles="RoleName" />

  <deny users="?" />

  </authorization>

  </system.web>

  </location> 2bazhinengshimouzhongjiaose访fangwendewenjianfangzaitongyimuluxia,zaicimuluxiatianjiayigeweb.config view plaincopy to clipboardprint?

  <configuration>

  <system.web>

  <authorization>

  <allow roles="RoleName" />

  <deny users="*" />

  </authorization>

  </system.web>

  </configuration>

  <configuration>

  <system.web>

  <authorization>

  <allow roles="RoleName" />

  <deny users="*" />

  </authorization>

  </system.web>

  </configuration> shuomingzimuludeweb.configshezhiyouxianyufumuludeweb.configshezhi

  yishangshenkaohttp://www.cnblogs.com/kwklover/archive/2004/06/29/19455.aspx

http://www.donews.net/robinblood/archive/2005/04/30/358041.aspx原文】【拼音
 
 
 
 
上一篇《FCKeditor 2.3 在ASP.NET中文件上传路径的设置》
下一篇《ASP.NET动态加载控件的"追赶论"》
 
 
 
 
 
 
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

如何磨出破洞牛仔裤?牛仔裤怎么剪破洞?

把牛仔裤磨出有线的破洞 1、具体工具就是磨脚石,下面垫一个硬物,然后用磨脚石一直磨一直磨,到把那块磨薄了,用手撕开就好了。出来的洞啊很自然的。需要猫须的话调几...

我就是扫描下图得到了敬业福和爱国福

先来看下敬业福和爱国福 今年春节,支付宝再次推出了“五福红包”活动,表示要“把欠大家的敬业福都还给大家”。 今天该活动正式启动,和去年一样,需要收集“五福”...

冰箱异味产生的原因和臭味去除的方法

有时候我们打开冰箱就会闻到一股异味,冰箱里的这种异味是因为一些物质发出的气味的混合体,闻起来让人恶心。 产生这些异味的主要原因有以下几点。 1、很多人有这种习...

 
 
  项目需要研究了下Asp.Net的基于forms的验证机制   构建基于forms的验证机制过程如下:     1,设置IIS为可匿名访问和asp.net web.config中设置为form验证     2,检索数据存储验证用户,并检索角色(如果不是基于角色可不用)     简单无role方式:     使用FormsAuthenticationTicket创建一个Cookie并回发到客户端,并存储 角色到票中,如:      FormsAuthentication.SetAuthCookie(Username,true | false)     cookies保存时间:     HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.Now.AddDays(1)     如果需要存储角色方式:  view plaincopy to clipboardprint? FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, // version txtUserName.Text, // user name DateTime.Now, // creation DateTime.Now.AddMinutes(20),// Expiration false, // Persistent roles ); // User data     //roles是一个角色字符串数组 string encryptedTicket = FormsAuthentication.Encrypt(authTicket); //加密 FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, // version txtUserName.Text, // user name DateTime.Now, // creation DateTime.Now.AddMinutes(20),// Expiration false, // Persistent roles ); // User data     //roles是一个角色字符串数组 string encryptedTicket = FormsAuthentication.Encrypt(authTicket); //加密    存入Cookie view plaincopy to clipboardprint? HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.Cookies.Add(authCookie); HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.Cookies.Add(authCookie);    在Application_AuthenticateRequest事件中处理程序中(Global.asax)中,使用票创建IPrincipal对象并存在HttpContext.User中代码: view plaincopy to clipboardprint? protected void Application_AuthorizeRequest(object sender, System.EventArgs e) { HttpApplication App = (HttpApplication) sender; HttpContext Ctx = App.Context ; //获取本次Http请求相关的HttpContext对象 if (Ctx.Request.IsAuthenticated == true) //验证过的用户才进行role的处理 { FormsIdentity Id = (FormsIdentity)Ctx.User.Identity ; FormsAuthenticationTicket Ticket = Id.Ticket ; //取得身份验证票 string[] Roles = Ticket.UserData.Split (',') ; //将身份验证票中的role数据转成字符串数组 Ctx.User = new GenericPrincipal (Id, Roles) ; //将原有的Identity加上角色信息新建一个GenericPrincipal表示当前用户,这样当前用户就拥有了role信息 } } protected void Application_AuthorizeRequest(object sender, System.EventArgs e) { HttpApplication App = (HttpApplication) sender; HttpContext Ctx = App.Context ; //获取本次Http请求相关的HttpContext对象 if (Ctx.Request.IsAuthenticated == true) //验证过的用户才进行role的处理 { FormsIdentity Id = (FormsIdentity)Ctx.User.Identity ; FormsAuthenticationTicket Ticket = Id.Ticket ; //取得身份验证票 string[] Roles = Ticket.UserData.Split (',') ; //将身份验证票中的role数据转成字符串数组 Ctx.User = new GenericPrincipal (Id, Roles) ; //将原有的Identity加上角色信息新建一个GenericPrincipal表示当前用户,这样当前用户就拥有了role信息 } }   需要对某些页面进行角色控制,有两种方法:     1、web.config中加 view plaincopy to clipboardprint? <location path="EditPost.aspx"> <system.web> <authorization> <allow roles="RoleName" /> <deny users="?" /> </authorization> </system.web> </location> <location path="EditPost.aspx"> <system.web> <authorization> <allow roles="RoleName" /> <deny users="?" /> </authorization> </system.web> </location>     2、把只能是某种角色访问的文件放在同一目录下,在此目录下添加一个web.config view plaincopy to clipboardprint? <configuration> <system.web> <authorization> <allow roles="RoleName" /> <deny users="*" /> </authorization> </system.web> </configuration> <configuration> <system.web> <authorization> <allow roles="RoleName" /> <deny users="*" /> </authorization> </system.web> </configuration>     说明:子目录的web.config设置优先于父目录的web.config设置 以上参考:[url=http://www.cnblogs.com/kwklover/archive/2004/06/29/19455.aspx]http://www.cnblogs.com/kwklover/archive/2004/06/29/19455.aspx[/url]      [url=http://www.donews.net/robinblood/archive/2005/04/30/358041.aspx]http://www.donews.net/robinblood/archive/2005/04/30/358041.aspx[/url]
󰈣󰈤
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
华丽的模特拍摄(8)
华丽的模特拍摄(7)
华丽的模特拍摄(6)
华丽的模特拍摄(5)
八里沟
朝阳宫
天下峨眉 云上金顶
老家(四)
 
>>返回首页<<
 
 
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 热帖排行
 
 
 
 
©2005- 王朝网络 版权所有