当前位置: 首页 > news >正文

招聘网官方网站个人网站备案说明

招聘网官方网站,个人网站备案说明,艺术学校网站模板,个人怎么做推广一、筛选器类和Cookie实现路由 需解决的问题#xff1a; 网站登录往往需要用户名密码验证#xff0c;为避免重复验证#xff0c;一般采用Cookie 、Session等技术来保持用户的登录状态#xff1a; Session是在服务端保存的一个数据结构#xff0c;用来跟踪用户的状态 网站登录往往需要用户名密码验证为避免重复验证一般采用Cookie 、Session等技术来保持用户的登录状态 Session是在服务端保存的一个数据结构用来跟踪用户的状态这个数据可以保存在集群、数据库、文件中 Cookie是客户端保存用户信息的一种机制用来记录用户的一些信息也是实现Session的一种方式 从上解释可见Cookie 比 Session 更简单也不占用服务器的资源。 ActionFilterAttribute    Cookie 可以解决 以上问题 首先在工程中新建一个空目录名称自取 然后在目录中添加一个类 UserCookie  负责对用户登录信息的Cookie相应操作 using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Web; namespace ManageSysetm.Tools {public class UserCookie{public static T JsonDeserializeT(string jsonString){return JsonConvert.DeserializeObjectT(jsonString);}public static string ToJson(object obj){JsonSerializerSettings settings new JsonSerializerSettings();settings.ReferenceLoopHandling ReferenceLoopHandling.Ignore;return JsonConvert.SerializeObject(obj);}public static void WriteCookie(Maticsoft.Model.user mod){ FormsAuthentication.SetAuthCookie(ToJson(mod), true, FormsAuthentication.FormsCookiePath);//把用户对象保存在票据里 FormsAuthenticationTicket Ticket new FormsAuthenticationTicket(1, mod.userName, DateTime.Now, DateTime.Now.AddTicks(FormsAuthentication.Timeout.Ticks), false, ToJson(mod));//加密票据string hashTicket FormsAuthentication.Encrypt(Ticket);HttpCookie userCookie new HttpCookie(FormsAuthentication.FormsCookieName, hashTicket);userCookie.Expires.AddHours(3);System.Web.HttpContext.Current.Response.Cookies.Add(userCookie);}public static Maticsoft.Model.user ReadCookie(){try{var cookie System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName]; //的到Cookieif (cookie null)return null;var ticket FormsAuthentication.Decrypt(cookie.Value); //解密票据string str ticket.UserData;return JsonDeserializeMaticsoft.Model.user(str);}catch{return null;}}public static void ReMoveCookie(){FormsAuthentication.SignOut();}} } 说明 1、添加了序列化的Json处理函数关于JSON可以参考前面的介绍 2、读写Cookie对输入的Model 序列化 (ToJson) 成字符串然后写入票据读的过程正好相反 再添加筛选器类IsLogin  继承于 ActionFilterAttribute using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace ManageSysetm.Tools {public class IsLogin : ActionFilterAttribute{//当方法执行时 public override void OnActionExecuting(ActionExecutingContext filterContext){try{ var isLogin UserCookie.ReadCookie();if (isLogin null){filterContext.Result new RedirectResult(/Home/login); }}catch{filterContext.Result new RedirectResult(/Home/login); }base.OnActionExecuting(filterContext);}//当方法执行完毕public override void OnActionExecuted(ActionExecutedContext filterContext){base.OnActionExecuted(filterContext);}} } 逻辑比较简单判断是否存在Cookie不存在的时候或者异常时跳转到登录页面否则正常通过。 二、使用 可以用“帽子”的方法来实现筛选 在默认的路由 Index上添加 筛选器 IsLogin 则在该Action执行前先进行筛选器判断取Cookie没有则返回登录页面否则正常进入Index 。 拓展 既然可以添加 筛选器 IsLogin 那么是否也可以添加  筛选器 IsAdmin (名称自取) ? ——这样可以根据不同用户角色筛选进入不同的页面。 当然是可以的解决思路无非就是加入用户Cookie中身份的判断逻辑 三、补充 数据表中用明文记录用户的密码是不可取的一旦数据表被曝光后用户的角色就能够被人使用。比如数据库管理人员可以利用数据表中的用户名和密码直接进行用户角色登录 解决方法是加密贴几个实用函数可以放入某个工具类中 private static string Key{get { return )O[NB]6,YF}efcaj{oESb9d8Ze9M; }}private static string IV{get { return L\~f4,Ir)b$pkf; }}public static string Encrypt(string pwd)//加密{byte[] bKey Encoding.UTF8.GetBytes(Key);byte[] bIV Encoding.UTF8.GetBytes(IV);byte[] byteArray Encoding.UTF8.GetBytes(pwd);//将字符串转换为字节序列string encrypt null;Rijndael aes Rijndael.Create();using (MemoryStream mStream new MemoryStream())//创建内存流对象{using (CryptoStream cStream new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))//创建加密流对象{cStream.Write(byteArray, 0, byteArray.Length);//向加密流中写入字节序列cStream.FlushFinalBlock();//将数据压入基础流,用缓冲区的当前状态更新基础数据源或储存库随后清除缓冲区。encrypt Convert.ToBase64String(mStream.ToArray());//从内存流中获取字节序列并返回加密后的字符串}}aes.Clear();return encrypt;}public static string AESDecrypt(string encryptStr){byte[] bKey Encoding.UTF8.GetBytes(Key);byte[] bIV Encoding.UTF8.GetBytes(IV);byte[] byteArray Convert.FromBase64String(encryptStr);string decrypt null;Rijndael aes Rijndael.Create();using (MemoryStream mStream new MemoryStream()){using (CryptoStream cStream new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write)){cStream.Write(byteArray, 0, byteArray.Length);cStream.FlushFinalBlock();decrypt Encoding.UTF8.GetString(mStream.ToArray());}}aes.Clear();return decrypt;} 使用方法比较简单string s UserCookie.Encrypt(password);  //对密码加密处理 加密字符串由此解决用户表密码信息的保护 PS 验证的时候不需要解密用户输入的密码加密 与 数据表中字段匹配一下即可。
http://wiki.neutronadmin.com/news/182367/

相关文章:

  • 做房地产网站海淀建设网站
  • 做微博这样的网站营业执照办好了就可以做网站了吗
  • 广州朝阳网站建设泰安网络推广公司推荐
  • 网站怎么做微信送红包活动高端 网站建设
  • 找个男做那个视频网站好网站导航优化
  • 网站 续费网站建设主要工作内容
  • 南宁网站制作费用深圳网络推广服务是什么
  • 三门峡建设环境局网站什么网站可以做调察问卷
  • wordpress建外贸网站北京个人网站备案
  • 福建亨立建设集团有限公司网站怎么开发一个微信商城
  • 定制化网站一般价格绍兴seo推广公司
  • 沭阳网站设计中国石油大学网页设计与网站建设
  • 泊头市网站建设网站的功能
  • 廉江手机网站建设公司济南万速网站建设
  • 服务号不认证可做微网站吗深圳网站建设icxun
  • 网站建设的因素网站的优点和缺点
  • 天河区门户网站教育局板块郑州同济医院收费高吗
  • 网站建设个人工作总结福田欧曼行星
  • 那些网站可以做宣传wordpress退出代码
  • 企业网站建设太原网站建设儿童网站模板
  • 无锡企业自助建站系统多语言网站怎么实现
  • allintitle:湛江网站建设 seowordpress分类自定义文字
  • 个人注册一个小公司要多少钱张家港网站建设优化
  • 大庆做流产油城女子网站企业网站系统
  • 八亿wap建站网站优化seo培
  • 做视频网站 投入购物网站功能报价
  • 广西住房与建设厅网站首页跨境电商saas
  • 淮南市网站开发的方式电商平台项目商业计划书
  • 凡科免费建站wordpress注册
  • 网站查询关键词排名软件无锡 网站建设