欢迎来到天天文库
浏览记录
ID:14214746
大小:132.00 KB
页数:4页
时间:2018-07-26
《【嘉为科技】基于cookie的凭据永久保存》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于Cookie的凭据永久保存文章类型:软件开发刘斌:软件开发工程师微软认证开发专家(MCPD),多年.NET平台开发经验,从事于于企业应用系统的需求分析、架构设计、程序开发,现为嘉为专职软件开发工程师。【摘要】在项目的开发过程中,碰到有需要凭据永久保存的功能。但在实践过程中,发现凭据过一段时间后就会失效。不断测试、研究才解决了这个问题。在此,将自己探索总结的一些经验与大家分享。【正文】1创建持久的永不过期票据1.1创建Form身份验证票据//设置cookie保持路径stringcookiePath=FormsAut
2、hentication.FormsCookiePath;//设置创建持久的票据,stringcreatePersistentCookie=true;//设置当前用户的信息,如角色、用户名等stringcommaSeperatedRoles=”role1ID,role2ID;userName,userID”;//设置cookie过期时间,单位是分钟intexpirationMinutes=1000000;//创建验证票据ticketFormsAuthenticationTicketticket=newFormsAuth
3、enticationTicket(1,userName,DateTime.Now,DateTime.Now.AddMinutes(expirationMinutes),createPersistentCookie,commaSeperatedRoles,cookiePath);1.2加密验证票据为了用户的隐私、安全,我们需要将票据加密,如下代码所示:stringencrypetedTicket=FormsAuthentication.Encrypt(ticket);1.3将票据返回给客户端//判断客户端浏览器是否支持
4、Cookieif(!FormsAuthentication.CookiesSupported){FormsAuthentication.SetAuthCookie(encrypetedTicket,createPersistentCookie);}else{HttpCookieauthCookie=newHttpCookie(FormsAuthentication.FormsCookieName,encrypetedTicket);//若设置了持久票据,还需设置cookie的过期时间if(ticket.IsPersi
5、stent)authCookie.Expires=ticket.Expiration;HttpContext.Current.Response.Cookies.Add(authCookie);}2修改配置文件2.1修改TimeOut节点将配置文件的forms节点的timeout属性设置成1000000,如下图所示:2.2设置静态MachineKey进入到IIS,双击计算机密钥。然后复选框全去掉,点击右边的生成密钥,如下图所示:打开配置文件,我们可以看到增加了machinekey节点,表示静态machinekey配置成
6、功。如下图所示:3注意事项设置身份验证票据的过期时间之后,不要忘记设置Cookie的过期时间。否则就算票据设置为永久,Cookie过期之后票据也会失效;<>若Web服务器采用了负载均衡,那么每台服务器的静态MachineKey必须设置成一样;
此文档下载收益归作者所有