仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 631|回复: 7
打印 上一主题 下一主题

[学习教程] 来一篇关于NET的asp.net中Forms考证时怎样设置用户脚色

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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和面向服务的课也应该听一听)
再现理想 该用户已被删除
沙发
发表于 2015-1-18 13:14:57 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-18 13:14:57 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
飘灵儿 该用户已被删除
地板
发表于 2015-1-24 06:14:21 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
深爱那片海 该用户已被删除
5#
发表于 2015-2-7 01:39:57 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
不帅 该用户已被删除
6#
发表于 2015-3-6 15:14:52 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
柔情似水 该用户已被删除
7#
发表于 2015-3-13 03:53:33 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-20 11:59:37 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 06:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表