forms表单验证

    在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的值。关于asp.net是在什么时候通过哪个类去读取cookie的值现在本人还不了解。希望各位大牛指点。如果Request.IsAuthenticated为false,就可以调用FormsAuthentication.RedirectToLoginPage();Response.End();来实现页面跳转。当我们访问一个需要验证的页面,就会跳转到登录界面,登录成功后,页面自动跳转到刚才访问的页面。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值