欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.net Forms验证Demo第1/3页

程序员文章站 2023-11-18 18:48:58
如果您研究过这个问题,那么,你一定会比较郁闷,现在网上流行的那个,国产的,里面有点问题,反正我一从昨天研究到现在 2008年12月17日 23时59分10秒,才搞明白是怎么...
如果您研究过这个问题,那么,你一定会比较郁闷,现在网上流行的那个,国产的,里面有点问题,反正我一从昨天研究到现在 2008年12月17日 23时59分10秒,才搞明白是怎么回事,你说我们这些人容易吗!如果只是为了完成任务,我用asp就ok了,为什么还要用asp.net,如果我们用.net时还用asp的思路也得了,为什么还要研究asp.net提供的东西。呵呵,不为什么,喜欢,我所做的正是我想做的,我不是为了完成一个任务,而是为了提升自己。总之一句话:我的目标是简化生活,技术高了,就不怕出错了,天塌下来也能给他顶回去。

言归正传,首先,贴上人家外国人的地址:http://www.codeproject.com/kb/web-security/formsroleauth.aspx

有兴趣的可以看看,没兴趣的直接下我的demo,有点兴趣的可以看下国人处理时有问题的地方:

global.asax

protected void application_authenticaterequest(object sender, eventargs e)
{

if (httpcontext.current.user != null)//如果当前的http信息中存在用户信息
{
if (httpcontext.current.user.identity.isauthenticated)//如果当前用户的身份已经通过了验证
{
if (httpcontext.current.user.identity is formsidentity)
{
//如果当前用户身份是formsidentity类即窗体验证类,此类有个属性能够访问当前用户的验证票
formsidentity fi = (formsidentity)httpcontext.current.user.identity;//创建个formsidentity类,用他来访问当前用户的验证票
//获得用户的验证票
formsauthenticationticket ticket = fi.ticket;
//从验证票中获得用户数据也就是角色数据
string userdata = ticket.userdata;
//把用户数据用,分解成角色数组
string[] roles = userdata.split(',');
//重写当前用户信息,就是把角色信息也加入到用户信息中
httpcontext.current.user = new system.security.principal.genericprincipal(fi, roles);
}
}
}
}

最后,贴上国人的地址,其实文章写的不错,只是这个事件没写对,其它的都不错
1