cooike 与Form验证的关系

问题描述

Form验证会向客户端写一个cookie,客户端再访问页面的时候会把cookie一起发送。有几个问题不明白1,服务器端收到cookie是怎么解析的?解析的时间,解析后的内容是什么。如果没有解析这一过程,服务器是如何知道客户端已经经过验证了?IsAuthenticated是怎么决定的2,服务器端是什么时候向客户端写cookie的?在登陆成功的时候向客户端写,对登陆成功后的请求,服务器应答的时候会写吗?假设不写,那么当把cookie过期时间设置很短,会不会发生几乎每次访问都需要重新登陆,让服务器发送cookie?3,使用ajax的方式向服务器提交登陆请求,怎样在客户端生成带有验证票据的cookie?请教了,越详细越好,能说明理由就更好了

解决方案

解决方案二:
构建基于forms的验证机制过程如下:1,设置IIS为可匿名访问和asp.netweb.config中设置为form验证2,检索数据存储验证用户,并检索角色(如果不是基于角色可不用)3,使用FormsAuthenticationTicket创建一个Cookie并回发到客户端,并存储角色到票中,如:FormsAuthentication.SetAuthCookie(Username,true|false)cookies保存时间:HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.Now.AddDays(1)如果需要存储角色,采用:FormsAuthenticationTicketauthTicket=newFormsAuthenticationTicket(1,//versiontxtUserName.Text,//usernameDateTime.Now,//creationDateTime.Now.AddMinutes(20),//Expirationfalse,//Persistentroles);//Userdataroles是一个角色字符串数组stringencryptedTicket=FormsAuthentication.Encrypt(authTicket);//加密存入CookieHttpCookieauthCookie=newHttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);Response.Cookies.Add(authCookie);4,在Application_AuthenticateRequest事件中处理程序中(Global.asax)中,使用票创建IPrincipal对象并存在HttpContext.User中代码:HttpCookieauthCookie=Context.Request.Cookies[FormsAuthentication.FormsCookieName];FormsAuthenticationTicketauthTicket=FormsAuthentication.Decrypt(authCookie.Value);//解密string[]roles=authTicket.UserData.Split(newchar[]{';'});//根据存入时的格式分解,;或|....Context.User=newGenericPrincipal(Context.User.Identity,Roles);//存在HttpContext.User中5,需要对某些页面进行角色控制,有两种方法:5.1,web.config中加<locationpath="EditPost.aspx"><system.web><authorization><allowroles="RoleName"/><denyusers="?"/></authorization></system.web></location>5.2,把只能是某种角色访问的文件放在同一目录下,在此目录下添加一个web.config<configuration><system.web><authorization><allowroles="RoleName"/><denyusers="*"/></authorization></system.web>
解决方案三:
http://www.aspxclub.com/l12/c_3689.html这里更详细,内容很丰富,希望是你想要了解的。
解决方案四:
简单的解释就是cookie是把客户端用户登录时的一些信息存放在客户端以便下次再次登录时方便
解决方案五:
没有人说的明白吗?

时间: 2024-11-05 06:56:49

cooike 与Form验证的关系的相关文章

ASP.NET教程:form验证用户登录的Cookie

做用户登录,我一直用form验证的方式.有时候,为了节省时间,用户希望用户名输入框能够记住用户名,省得下次重新输入.这个时候光用form验证是不行的,因为form验证的话,用户一退出系统就失效了,所以需要借助于Cookie. 本以为做这个会很轻松,谁知花了不少时间也没有成功.虽然检验用户名和密码都是正确的,但系统总是拒绝登录,然后返回到登录页面.登录页面的用户名输入框记是记住用户名了,但用户名是乱码的. 真是郁闷至极!一度以为系统发生了错乱,重启机器也还是无济于事.经反复检查和测试发现,如果在f

asp.net form验证

读书时最常用判断登陆的就是登陆时用cookie或session存储,然后每个页面判断是否登陆. 这样做每个页面都要判断很麻烦. 毕业半年了,这半年学会了用类,重写事件OnLoad()来,这样每个页面继承这个类!这个类里可以判断是否登陆,判断权限等等一些操作 可是如果只有登陆验证没有权限其他操作的话!这样用form验证比继承类来得更方便,这个也是今天才想到的!由于读书时注重玩,结果好多没注意听.今天重新学习了下form验证 首先配置web.config 在systen.web内配置 <authen

安装.NET Framework 4.5时提示“验证信任关系时,系统层出现了一个错误”

问题描述 如题,安装.NETFramework4.5时提示"验证信任关系时,系统层出现了一个错误".本人菜鸟一枚,求各位大大指导一下,江湖救急,感激不尽

JQuery中form验证出错信息的查看方法_jquery

JQuery中form验证出错,可以采用以下方式来查看具体input的出错信息 复制代码 代码如下: If(!$('form').valid()) { $($('form').validate().errorList).each(function (index, item) { Console.log($($(item).attr('element)).attr('name') + ' ' + $($(item).attr('element)).attr('message')); }); }

asp.net 特定目录form验证_实用技巧

就想将这个form验证运用到我作的网站上去,这样也可以增强一点网站的基础安全性. 今天上午,来到公司开始上网查找资料,学习form验证,因为我做的那个网站框架已经设计好了,需要对后台进行验证,后台的所有文件是在一个admin文件夹下,也就是说,所谓的form验证就是对admin下的文件进行form验证.我上网找了一些资料,都只是说对根目录下面的文件或者文件夹进行验证,也看到了可以运用<location path="1111">来进行排除,我就反其道而行之. 复制代码 代码如

如何在进行iis验证(windows域的form验证)之前执行某段代码?

问题描述 现在公司有OA系统,用的.net2.0平台搭建,集成了windows域验证登录.也就是说在打开oa时会弹出个Form窗体输入用户名和密码,成功进入,验证失败则显示未授权.....现在老板的需求是想在这个验证之前再判断是否用的是IE浏览器,也就是说想要达到的效果是如果用的非ie浏览器,那么就弹出提示并跳转到错误页面,不要弹出那个验证的form对话框.是否用IE这个好解决,问题是如何将自定义的代码插入到form对话框验证出现之前呢?大家帮忙!!! 解决方案 解决方案二:用js判断不就可以了

网站下建一个应用程序 ,网站是form验证的,可是网站验证通过下面的应用程序没验证

问题描述 网站下建一个应用程序,网站是form验证的,可是网站验证通过下面的应用程序没验证iis是7.5结构是这样的网站的wenconfig<authenticationmode="Forms"><formsloginUrl="Login.aspx"timeout="180"/></authentication>应用程序的没加 解决方案 解决方案二:应用程序池是不是用的同一个解决方案三:没遇到过,帮顶下

一起谈.NET技术,ASP.NET4中不要相信Request.Browser.Cookies,Form验证要用UseCookies

从ASP.NET 3.5升级至ASP.NET4之后,遇到三种登录后不能保存cookie的情况(升级前一切正常): 1. 遨游3在极速模式下(默认模式). 2. FireFox中修改了UserAgent. 3. 诺基亚手机自带浏览器或者UCWeb浏览器访问博客园手机版(m.cnblogs.com). 今天终于把罪魁祸首给揪出来了,它就是Request.Browser.Cookies. 如果你在程序中使用Form验证并使用cookie保存用户的登录状态,请切记:在<authentication mo

ASP.NET4中不要相信Request.Browser.Cookies,“.NET研究”Form验证要用UseCookies

从ASP.NET 3.5升级至ASP.NET4之后,遇到三种登录后不能保存cookie的情况(升级前一切正常): 1. 遨游3在极速模式下(默认模式). 2. FireFox中修改了UserAgent上海徐汇企业网站设计与制作. 3. 诺基亚手机自带浏览器或者UCWeb浏览器访问博客园手机版(m.cnblogs.com). 今天终于把罪魁祸首给揪出来了,它就是Request.Browser.Cookies. 如果你在程序中使用Form验证并使用cookie保存用户的登录状态,请切记:在<auth