博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET FORM验证
阅读量:6822 次
发布时间:2019-06-26

本文共 1522 字,大约阅读时间需要 5 分钟。

ASP.NET中有windows验证和forms验证,对于forms验证可以强制进入网站之前必须登陆。首先需要配置web.cinfig文件 
 <authentication mode="Forms">
   <forms loginUrl="login.aspx"></forms>
  </authentication>
  <authorization>
   <deny users="?"/>
      
      <!--<allow users="?"/>-->
  </authorization>
其中login.aspx是登陆界面,现在进入网站总会进入login.aspx页面。
该页面输入用户名和密码。forms验证需要一个验证票据 formsAuthenticationTicket,存放用户名称和过期时间。。。
if (ValidateUser(txtUserName.Value, txtUserPass.Value))  //判断是否是合法用户
        {
            FormsAuthenticationTicket tkt;
            string cookiestr;
            HttpCookie cookie;
            tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now,
      DateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data");
            cookiestr = FormsAuthentication.Encrypt(tkt);
            cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);
            if (chkPersistCookie.Checked)
                cookie.Expires = tkt.Expiration;
            cookie.Path = FormsAuthentication.FormsCookiePath;
            Response.Cookies.Add(cookie);
            string strRedirect= "default.aspx";;
            strRedirect = Request["ReturnUrl"];
            Response.Redirect(strRedirect, true);
        }
当验证成功后,先创建一个票据,将该票据加密成字符串放到cookie里面,不放也可以,因为当用户登录成功后我们更多用的是用户名称,该名称可以从user.Identity.Name 中得到,所以本人认为写cookie意义不大。在跳转到的页面就可以用user.Identity.Name 取得用户的信息了。不过如果象CSDN那样可以两周之内不用登陆就得用cookie了,可以在 login.aspx页面的page_init事件写
        HttpCookieCollection cookieCollection = Request.Cookies;
        if (cookieCollection[FormsAuthentication.FormsCookieName] != null)
            FormsAuthentication.RedirectFromLoginPage(FormsAuthentication.FormsCookieName, true);
在票据里面设置cookie的过期时间就可以了。
本文转自lidup 51CTO博客,原文链接:http://blog.51cto.com/lidup/136141,如需转载请自行联系原作者
你可能感兴趣的文章
Firefox OS 未死,这两款松下电视会搭载该系统
查看>>
AngularJS 1.3.0 正式发布,超光速发展!
查看>>
Chrome 将进一步削弱 Flash 内容
查看>>
《After Effects CC中文版超级学习手册》——导读
查看>>
Tor 项目弃用 obfs2,开发 obfs4
查看>>
Eclipse设置:背景与字体大小和xml文件中字体大小调整
查看>>
c++强制类型转换(总结)
查看>>
H3C S5500 配置范例
查看>>
工具05:XShell
查看>>
SQL分割字符串详解
查看>>
Apache+Resin整合搭建JSP环境
查看>>
【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强...
查看>>
【踩坑经历】一次Asp.NET小网站部署踩坑和解决经历
查看>>
通过python切换hosts文件
查看>>
iOS8新特性扩展(Extension)应用之四——自定义键盘控件
查看>>
窥探Swift之函数与闭包的应用实例
查看>>
数据对接—kettle使用之九
查看>>
tableVIew删除时的delete按钮被挡住时重写的方法
查看>>
【AIX 命令学习】mkdev -l 设置逻辑卷
查看>>
[curl-loader]faststart新压力测试工具
查看>>