|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你所列的那些其实差不多都可以称为应用服务器(servlet应该说是一种语言更合适)java是开放的,相同的工具就会有很多公司在做,加上java已经发展了很多年了,因此这些工具就很多了。他们很多都是类似的。<p>完成一个供应平安服务的HTTP模块
如今我们完成一个HTTP模块,它为我们的Web使用程序供应平安服务。该HTTP模块基础上是供应一种定制的身份认证服务。它将吸收HTTP哀求中的身份凭据,并断定该凭据是不是无效。假如无效,与用户相干的脚色是甚么?经由过程User.Identity工具,它把这些脚色与会见我们的Web使用程序页面的用户的标识联系关系起来。
上面是该HTTP模块的代码:
<OLclass=dp-xml>usingSystem;usingSystem.Web;usingSystem.Security.Principal;namespaceSecurityModules{ ///Class1的整体形貌。 publicclassCustomAuthenticationModule:IHttpModule {publicCustomAuthenticationModule(){}publicvoidInit(HttpApplicationr_objApplication){ //向Application工具注册事务处置程序。 r_objApplication.AuthenticateRequest+=newEventHandler(this.AuthenticateRequest);}publicvoidDispose(){ //此处空出,由于我们不必要做甚么操纵。}privatevoidAuthenticateRequest(objectr_objSender,EventArgsr_objEventArgs){ //判别用户的凭据,并找出用户脚色。。 1.HttpApplicationobjApp=(HttpApplication)r_objSender; 2.HttpContextobjContext=(HttpContext)objApp.Context; 3.if((objApp.Request["userid"]==null)|| 4. (objApp.Request["password"]==null)) 5. { 6.objContext.Response.Write("<H1>Credentialsnotprovided</H1>"); 7.objContext.Response.End(); 8. } 9.stringuserid=""; 10.userid=objApp.Request["userid"].ToString(); 11.stringpassword=""; 12.password=objApp.Request["password"].ToString(); 13.string[]strRoles; 14.strRoles=AuthenticateAndGetRoles(userid,password); 15.if((strRoles==null)||(strRoles.GetLength(0)==0)) 16.{ 17. objContext.Response.Write("<H1>Wearesorrybutwecouldnotfindthisuseridandpasswordinourdatabase</H1>"); 18. objApp.CompleteRequest(); 19.} 20.GenericIdentityobjIdentity=newGenericIdentity(userid,"CustomAuthentication"); 21.objContext.User=newGenericPrincipal(objIdentity,strRoles);}privatestring[]AuthenticateAndGetRoles(stringr_strUserID,stringr_strPassword){ string[]strRoles=null; if((r_strUserID.Equals("Steve"))&&(r_strPassword.Equals("15seconds"))) {strRoles=newString[1];strRoles[0]="Administrator"; } elseif((r_strUserID.Equals("Mansoor"))&&(r_strPassword.Equals("mas"))) {strRoles=newstring[1];strRoles[0]="User"; } returnstrRoles;} }}
<p>刚刚打开这篇专题,猛然见到HAL9000发表的《对于大型公司项目平台选择j2ee的几层认识》系列,深受启发。 |
|