ASP.NET FORM验证

简介:
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,如需转载请自行联系原作者

相关文章
|
开发框架 前端开发 .NET
分享一个 ASP.NET WebForm 使用 Form Authentication 的例子
分享一个 ASP.NET WebForm 使用 Form Authentication 的例子
164 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
350 0
|
机器学习/深度学习 JSON 测试技术
CNN依旧能战:nnU-Net团队新研究揭示医学图像分割的验证误区,设定先进的验证标准与基线模型
在3D医学图像分割领域,尽管出现了多种新架构和方法,但大多未能超越2018年nnU-Net基准。研究发现,许多新方法的优越性未经严格验证,揭示了验证方法的不严谨性。作者通过系统基准测试评估了CNN、Transformer和Mamba等方法,强调了配置和硬件资源的重要性,并更新了nnU-Net基线以适应不同条件。论文呼吁加强科学验证,以确保真实性能提升。通过nnU-Net的变体和新方法的比较,显示经典CNN方法在某些情况下仍优于理论上的先进方法。研究提供了新的标准化基线模型,以促进更严谨的性能评估。
569 0
|
开发框架 JSON .NET
|
JSON 数据格式 微服务
.NET下 支持大小写不敏感的JSON Schema验证方法
有很多应用程序在验证JSON数据的时候用到了JSON Schema。 在微服务架构下,有时候各个微服务由于各种历史原因,它们所生成的数据对JSON Object属性名的大小写规则可能并不统一,它们需要消费的JSON数据的属性名可能需要大小写无关。 遗憾的是,目前的JSON Schema没有这方面的标准,标准中都是大小写敏感的。在类似上述情况下,这给使用JSON Schema进行数据验证造成了困难。
170 0
|
开发框架 JavaScript .NET
Asp.Net就业课之三验证控件
Asp.Net就业课之三验证控件
180 0
|
开发框架 JSON 算法
ASP.NET Core Web API之Token验证
ASP.NET Core Web API之Token验证
427 0
|
开发框架 安全 .NET
[牛腩]如何关闭.net framework4.0的请求验证
[牛腩]如何关闭.net framework4.0的请求验证
|
开发框架 .NET 数据安全/隐私保护
ASP.NET验证控件合集 含代码演示
ASP.NET验证控件合集 含代码演示
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
438 0