在ASP.NET应用程序中,有四种验证方式:Windows验证、表单验证、Passpord验证、自定义验证。
最近在看表单验证,在这里给大家分享下我的经验。
要实现Form验证很简单。
第一步在web.config文件中的<system.web>节点下添加
<authentication mode="Forms">
<forms name="formname" path="/" loginUrl="" timeout=“”/>
</authentication>
这样就告诉了应用程序用表单验证。
验证名:formname(Request.IsAuthenticated的值就是根据cookies中是否存在名为formname的cookie来判断是否返回true或者false)
存放路径:根目录(浏览器不同cookie文件存放的具体路径也不同)。
登录路由:通过调用FormsAuthentication.RedirectToLoginPage()可以获得loginUrl的值。
过期时间:默认是20分钟。
当然这里其他一些参数就不详细说明了,可以参考msdn。
第二步创建并保存cookie。在你的登录界面中添加HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieValue)cookieValue可以自己定义也可以调用FormsAuthenticationTicket类封装自己想要的一些数据,一般都经过加密。例如它的重载构造函数之一FormsAuthenticationTicket(int version, string name, DateTime issueDate, DateTime expiration, bool isPersistent, string userData, string cookiePath)name定义了HttpContext.User.Identity.Name;UserData可以定义我们自己的一些数据。然后保存把创建的cookie值保存起来来通过调用代码Response.Cookies.Add(cookie)。这样你的cookie值就能在客户端保存起来。
第三步创建要验证的页面,在页面中可以通过调用Request.IsAuthenticated的值来判断当前Requset是否已经验证。基本思路就是判断是否有名为表单名formname的cookie值。Request.IsAuthenticated其实是调用了HttpContext.User.Identity.IsAuthenticated的值。。如果Request.IsAuthenticated为false,就可以调用FormsAuthentication.RedirectToLoginPage();Response.End();来实现页面跳转。当我们访问一个需要验证的页面,就会跳转到登录界面,登录成功后,页面自动跳转到刚才访问的页面。
以上只是简单的讲了下使用方法。在项目中具体应用,因人而异。
本人.net菜鸟,好久没写博客,望大家多多包涵。
以后每周坚持写一篇。