ASP.NET安全问题--Forms验证的具体介绍(上篇)
是和Forms相关的API。上篇文章谈过了。
FormsAuthentication类 这个类很重要。 还有一点注意的就是:因为FormsAuthentication和FormsAuthenticationModule名称很相似,很容易混淆。 它们之前的区别在于,FormsAuthenticationModule是一个HTTP模块;而FormsAuthenticate是一个类,它有很多的方法和属性。更加直白的说就是:它们之前没有什么关联,只是在Application_AuthenticateRequest事件中我们常常要调用FormsAuthenticate类的一些方法和属性。而且FormsAuthenticate的很多方法都是静态的方法,我们不会创建FormsAuthenticate类的实例。 还有一点要特别注意的就是FormsAuthenticate的Authenticate方法。 我们之前说过了,我们一般是在登录窗体中提交用户信息,然后服务器端验证提交的信息,我们在服务器端常常是去数据库中检查这些信息的正确性,但是去数据库或者其他的数据存储(如文件,活动目录)中去检查只是一种情况。 还有另外的情况。不知道大家是否记得web.config 中的一个配置的节点:
如果我们在配置文件配置了上述的信息,那么我们就可以用Authenticate方法来检查提供了用户信息(用户名和密码)是否正确,如果我们没有在web.config配置用户的信息,也就是说我们是把信息保存在数据库等其他的地方,那么我们就不能Authenticate这个方法。当然我们很少用Authenticate这个方法,因为我们不可能把所有用户信息硬编码到配置文件中,但是还是要清楚这个方法。 另外我简单的介绍一些常用的方法,具体的使用我以后会讲述。 在FormsAuthenticate中使用频繁的是RedirectFromLoginPage方法。每当验证了用户的凭证后就会使用到这个方法,也就是我们之前说过的:跳转到我们最初请求的页面。 这个方法就这么简单的一"跳",但是其实在内部做了很多的事情: 1.为用户创建一个身份验证的票据 2.对身份验证的票据进行加密 3.创建一个cookie,把加密的票据保存在cookie中 4.向HTTP响应添加cookie,并且发送给客户端。 5.跳转,并且把用户重定向到最初请求的页面 另外FormsAuthenticate类还有很多的其他方法和属性: FormsAuthenticate中涉及到客户端保存cookie的两个属性就是: FormsCookieName:获取或者设设置cookie的名称 FormsCookiePath:获取或者设置cookie的url路径 其中FormsCookiePath属性有一点要注意:大多数的浏览器会在判断cookie是否要和请求一起发送时,用到cookie路径。(我们一般在配置文件配置path="/"),如果我们配置的path不是"/",那么这个cookie就不会和请求发送到服务器端. FormsAuthenticate中和cookie操作相关的方法有: Decrypt:提取身份验证cookie的加密信息,创建FormsAuthenticationTicket,也就是解密。 Encrypt:加密。从FormsAuthenticationTicket中获取信息,并且加密。以备我们之后把加密的信息写入cookie GetAuthCookie:创建身份验证cookie,但是并不把它立即添加到HTTP响应中 SetAuthCookie:创建身份验证cookie,并且把它添加到Response.Cookie中。 RenewTicketIfOld:刷新身份验证cookie的生命周期 GetRedirectUrl:把用户重定向到他们最初请求的页面。 SignOut:使得当前的身份验证cookie过期。我们常用的注销功能。 FormsIdentity 大家现在应 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |