当前位置: 首页 > 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://www.hkea.cn/news/14420951/

相关文章:

  • 网站建设前的分析第一小节内容湖北短视频seo营销
  • 南通网站推广公司怎样做ppt建网站
  • 一个网站建设的组成企业信息管理系统案例
  • 网站建设的方法有哪些做简单网站用什么软件有哪些内容
  • 有做机械工装的网站吗企业官网制作费用
  • 石家庄 外贸网站建设网页设计论文总结怎么写
  • 邹城网站建设多少钱docker wordpress v
  • 红酒购物网站源码wordpress模拟接口
  • 第三方网站开发优缺点wordpress跳转到登录页面
  • 郑州做网站优化运营商表白二维码生成器
  • 广州网站备案方案第三方关键词优化排名
  • 排名好的大连网站建设个人能建电商网站吗
  • 手机端网站开发语言佛山高明
  • 印刷下单网站开发网站怎么更改后台登陆密码
  • 上海网站建设免费推荐阿里云服务器怎么使用
  • wordpress主题知更鸟美化seo外链工具软件
  • 昆明网站建设在河科技上海大学生兼职做网站
  • 网站系统建设合作合同范本北京网站制作很好 乐云践新
  • 云阳有没有做网站的wordpress 2018
  • asp.net mvc做网站难吗贵州省建设厅网站查
  • 现在做个人网站汽贸公司网站建设
  • 工信部网站备案查询系统江门市专业做网站公司
  • 网站app推广怎么做室内设计公司经营范围
  • 手机浏览器 网站开发临沂建站公司
  • 网站建设数据库代码wordpress 分享 qq
  • 网站地址搜索网络服务提供者发现未成年通过网络发布
  • 网站设计网页主页介绍wordpress 即时通讯
  • 淘宝网站建设手机版什么网站可以做数据图
  • 赣州网站建设jx25懒人网页编辑器手机版
  • 服务器iis搭建网站东莞网站推广怎么做