|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我也不知道,我原来理解的,NET就是C++编程,只是与JAVA相对,呵呵。以为.ET就是高级C++编程。大概我们在刚打仗asp.net的时分,纪录上岸用户及用户脚色等信息都是用一个Session存储起来,必要作判别的时分,再读取这个Session值。这个办法复杂便利,也是不错的。但这节我们次要解说在asp.net的forms考证形式时,怎样使用User工具来取的上岸用户名与用户脚色。
起首和用Session一样,都要考证用户与暗码的准确性……,这个都是通用的,要否则怎样会晓得这个用户是正当的呢?然后就是存储用户和脚色的办法了。
为便利起见,我们这里只界说两种脚色,并用列举的体例界说,便利利用:
publicenumeUserRoles
{
general,//一般用户
manager//办理员
}
然后在上岸按钮的事务中设置用户票证及存储Cookies:
protectedvoidon_sure_click(objectsender,EventArgse)
{
……考证用户名与暗码的代码,略过,假定已考证经由过程了。
//创立一个新的票证,要注重这个机关函数中最初一个参数我们把用户脚色传出来了,从这个机关函数的申明中我们能够懂得到,这个参数是用户界说的数据,票证自己是不分明些数据的意义的,我们在前面的代码中还必要对这个数据举行处置。
//注重,这个用户脚色是我们假定的,实在情形下,你多是依据用户名从数据库取到的用户脚色。
FormsAuthenticationTicketticket=newFormsAuthenticationTicket(1,"用户名",DateTime.Now,
DateTime.Now.AddDays(30),false,eUserRoles.general.ToString());
//创立一个字符串,这个字符串包括合用于HTTPCookie的加密的Forms身份考证票证信息。
stringhashticket=FormsAuthentication.Encrypt(ticket);
//使用下面的字符串,创立Cookie,并输入Cookie
HttpCookieusercookie=newHttpCookie(FormsAuthentication.FormsCookieName,hashticket);
Response.Cookies.Add(usercookie);
}
好了,使用程序实行过下面这段代码后,我们再会见该使用程序的任何一个页面时城市将这个身份cookie一同发送到服务端,然后服务器就晓得我们有无经由考证了。
但仔细的人人应当已发明了,到如今为止,我们并没无为该用户付与脚色值啊,服务器怎样会晓得该用户的脚色呢?是的,到这个时分,服务器还其实不晓得该用户的脚色,我们还必要在Global.asax文件中的Application_AuthenticateRequest事务中完成上面的代码,这个事务是在平安模块已创建用户标识时产生。
protectedvoidApplication_AuthenticateRequest(objectsender,EventArgse)
{
//判别以后用户有无举行上岸
if(HttpContext.Current.User!=null)
{
//判别是否是由Forms体例上岸
if(HttpContext.Current.User.IdentityisFormsIdentity)
{
FormsIdentityid=HttpContext.Current.User.IdentityasFormsIdentity;
FormsAuthenticationTicketticket=id.Ticket;//取到以后的票证
stringuserdate=ticket.UserData;//取到以后票证中的自界说数据,这个自界说数据就是我们在下面付与的脚色信息
string[]roles=userdate.Split(,);//由于能够给一个用户付与多个脚色,以是我们用一个关头字把多个脚色构成一个字符数组。
//使用以后的用户信息与脚色信息从头初始化以后的用户信息
HttpContext.Current.User=newSystem.Security.Principal.GenericPrincipal(id,roles);
}
}
}
到这里,我们就能够在必要判别用户脚色的中央利用User.IsInRole来判别脚色了。好比:
protectedvoidon_sure_click1(objectsender,EventArgse)
{
if(User.IsInRole(eUserRoles.manager.ToString()))
{
Response.Write("我是办理员脚色");
}
elseif(User.IsInRole(eUserRoles.general.ToString()))
{
Response.Write("我是一般用户脚色");
}
else
{
Response.Write("我不属于任何脚色");
}
}
到这里,asp.net中Forms考证时怎样设置用户脚色的功效就完成了。还要注重一点的就是,假如要完成Forms考证体例,必定要记得修正web.config的设置文件哦,示比方下:
<authenticationmode="Forms">
<formsname="forums"path="/"loginUrl="WebForm3.aspx"protection="All"timeout="14400"></forms>
</authentication>
不过你如果学.net的话,你就不要选os了,这课比较底层的。你可以旁听数据库加上软件构件和中间件。(webservices和面向服务的课也应该听一听) |
|