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

相关文章
|
9月前
|
开发框架 JSON 算法
ASP.NET Core Web API之Token验证
ASP.NET Core Web API之Token验证
145 0
|
存储 开发框架 前端开发
ASP.NET 中验证的自定义返回和统一社会信用代码的内置验证实现
本文介绍 ASP.NET 中内置的验证功能,并介绍如何自定义验证返回信息,最后以统一社会信用代码为例,实现自定义的数据验证。
188 0
ASP.NET 中验证的自定义返回和统一社会信用代码的内置验证实现
|
开发框架 JSON 前端开发
ASP.NET MVC5----常见的数据注解和验证
ASP.NET MVC5----常见的数据注解和验证
300 0
ASP.NET MVC5----常见的数据注解和验证
|
开发框架 .NET
asp.net生成验证码并提交验证
asp.net生成验证码并提交验证
162 0
|
XML 开发框架 JSON
ASP.NET Core - 实现自定义WebApi模型验证
ASP.NET Core - 实现自定义WebApi模型验证  Framework时代    在Framework时代,我们一般进行参数验证的时候,以下代码是非常常见的 复制代码 [HttpPost] public async Task<JsonResult> SaveNewCus...
1663 0
ASP.NET Core微服务之基于Ocelot+IdentityServer实现统一验证与授权
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一、案例结构总览   这里,假设我们有两个客户端(一个Web网站,一个移动App),他们要使用系统,需要通过API网关(这里API网关始终作为客户端的统一入口)先向IdentityService进行Login以进行验证并获取Token,在IdentityService的验证过程中会访问数据库以验证。
2705 0
ASP.NET Core微服务之基于IdentityServer建立授权与验证服务(2)
_Tip:_ 此篇已加入.NET Core微服务基础系列文章索引 上一篇我们基于IdentityServer4建立了一个AuthorizationServer,并且继承了QuickStartUI,能够成功获取Token了。
1810 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
42 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
99 5