Forms表单验证能不能用Session来保存 表单验证是用Cookie来保存用户数据的,但这样同时间只能使用一个用户登录,我想不用Cookie而用Session来保存用户数据应该就可以支持同时间多用户,但不知道怎么做,哪位高手给个例子。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 asp.net session 默认也是用 cookie 来保存的 我知道,但session只对当前的浏览器有效,而Cookie在失效前对所有的浏览器有效。有谁知道怎么用seesion来保存 可以用session 和普通的都一样 直接给session["name"]="aaaa"; Form form1 =Form ();Session["name"] = form1 ; Form form1 = new Form ();少写个NEW 我的代码是这样的 protected void btnLogin_Click(object sender, EventArgs e) { if (tbUserName.Text == "cyy" && tbPwd.Text == "1") { FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, tbUserName.Text, DateTime.Now, DateTime.Now.AddMinutes(30), true, "User"); string cookieStr = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieStr); cookie.Expires = ticket.Expiration; cookie.Path = FormsAuthentication.FormsCookiePath; Response.Cookies.Add(cookie); Response.Redirect("index.aspx");//登陆成功后跳转到index.aspx } }在Global.asax protected void Application_AuthenticateRequest(object sender, EventArgs e) { if (HttpContext.Current.User != null) { if (HttpContext.Current.User.Identity.IsAuthenticated) { if (HttpContext.Current.User.Identity is FormsIdentity) { FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity; FormsAuthenticationTicket ticket = id.Ticket; string userData = ticket.UserData; string[] roles = userData.Split(','); HttpContext.Current.User = new GenericPrincipal(id, roles); } } } }好像Form表单验证会自己读取Cookies 可以用Session 不过这样的话 好像会加重服务器 端的负担还是建议你在客户端进行验证 成功之后 用Session保存少量的数据如果数据量小用Session不是太明显 如果是大量数据的话服务器端就会比较麻烦了 可用Cookies,同一台电脑不能运行多个用户登录,只能退一个进一个加上我的用户比较少,用Session问题不大 那用户少的话 你用Session验证也可以啊 程序是自己写的 咱们根据自己的条件 量力而行啊 呵呵,那天发现.net 2.0的表单验证很好用,可以不用先以前ASP那样每个页面都要加Session[""]==""的判断,但我只找到用Cookies保存用户数据的例子,不知道怎么改成Session 其实Session和Cookie保存数据的方式都一样,只不过保存数据的地方不一样而已Session中的数据保存在服务器端 而cookie中的数据保存在客户端 如果说不是太敏感的数据你用Cookie保存就可以了 如果说是比较敏感的数据你用Session保存 Session 和Cookie存储和取数据的方式是一样的 没什么区别 但Session只对当前的浏览器有效,而Cookie对所有浏览器有效,但用户在另一个浏览器用另一个账号登陆时Cookie就会被改写,而Session不会。 那是啊 Cookie保存在客户端 这就是为什么要保存不敏感数据的原因了因为他的安全系数较低 而Session保存在服务器端 只要当前用户一直保持登录状态 那么他的值就不会变 请楼主要清楚Seesion代表什么什么不能同时多用户登陆???开什么玩笑啊你一个ASP。NET程序,aspwape.exe程序会运行它,给它开设一个专用的工作进程,你可以想向为一个合子而每个用户请求,它又会分出线程(也就是我们常说的多条线程同住于一个工作进程里面)来负责回应,Seesion是属于线程的,只对当前请求的用户有效,每条线程里的Seesion各自独立,互不相关如果你想让多条线程里的内容相关,请使用全局变量Application,或者是全局静态变量(自己定义的那种)大学里的计算机操作系统那说得可能清楚些Seesion比Cookie灵活,可以说是Cookie的内存版,但是因为C#的动态解析型语言,所以只要你更改了文件夹里的东西(如App_Code文件夹),ASP。NET工作进程就会自动重启,有一种情况,微软的啦圾回收机制,不管你再怎么着,ASP。NET工作进程会在默认的最大时间内强制重启工作进程,以便啦圾回收,这是微软定死的,你没法改,除非改内核!这就造成了我们常见的Seesion丢失问题 导出Excel,如何产生多个工作薄? appscan扫描站点漏洞 headertext问题 忽然对输入验证有个想法,假如……? 含代码 VB.NET动态生成DROPDOWNLIST 里的数据 ,请问我错在哪里? 在sql中复制一张表最简单的方法是什么? 如何给datagrid中模板列中的textbox的text赋初值啊(菜鸟问题)!!! 问大家一个问题,在java中解决多数据库操作是用JTA.那在.net下怎么解决这个问题? 关于blog安全的问题 LoginName是怎么取出用户名的?(求助!!!) 关于DataReader连接问题 如何运用repeater控件?
我知道,但session只对当前的浏览器有效,而Cookie在失效前对所有的浏览器有效。有谁知道怎么用seesion来保存
Form form1 =Form ();
Session["name"] = form1 ;
少写个NEW
{
if (tbUserName.Text == "cyy" && tbPwd.Text == "1")
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, tbUserName.Text, DateTime.Now, DateTime.Now.AddMinutes(30), true, "User");
string cookieStr = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieStr);
cookie.Expires = ticket.Expiration;
cookie.Path = FormsAuthentication.FormsCookiePath;
Response.Cookies.Add(cookie);
Response.Redirect("index.aspx");//登陆成功后跳转到index.aspx
}
}
在Global.asax
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket ticket = id.Ticket; string userData = ticket.UserData;
string[] roles = userData.Split(',');
HttpContext.Current.User = new GenericPrincipal(id, roles);
}
}
}
}好像Form表单验证会自己读取Cookies
还是建议你在客户端进行验证 成功之后 用Session保存少量的数据
如果数据量小用Session不是太明显 如果是大量数据的话
服务器端就会比较麻烦了
可用Cookies,同一台电脑不能运行多个用户登录,只能退一个进一个加上我的用户比较少,用Session问题不大
呵呵,那天发现.net 2.0的表单验证很好用,可以不用先以前ASP那样每个页面都要加Session[""]==""的判断,但我只找到用Cookies保存用户数据的例子,不知道怎么改成Session
Session中的数据保存在服务器端 而cookie中的数据保存在客户端 如果说不是太敏感的数据
你用Cookie保存就可以了 如果说是比较敏感的数据你用Session保存 Session 和Cookie存储
和取数据的方式是一样的 没什么区别
但Session只对当前的浏览器有效,而Cookie对所有浏览器有效,但用户在另一个浏览器用另一个账号登陆时Cookie就会被改写,而Session不会。
因为他的安全系数较低 而Session保存在服务器端 只要当前用户一直
保持登录状态 那么他的值就不会变
大学里的计算机操作系统那说得可能清楚些
Seesion比Cookie灵活,可以说是Cookie的内存版,但是因为C#的动态解析型语言,所以只要你更改了文件夹里的东西(如App_Code文件夹),ASP。NET工作进程就会自动重启,有一种情况,微软的啦圾回收机制,不管你再怎么着,ASP。NET工作进程会在默认的最大时间内强制重启工作进程,以便啦圾回收,这是微软定死的,你没法改,除非改内核!
这就造成了我们常见的Seesion丢失问题