解决后会有100分的额外奖励!!formsauthentication.setauthcookie(username,false)的cookie.value问题

问题描述

如题公司服务器升级,从win2003,IIS6升级到win2008,IIS7.5升级后发现登陆后的cookie值不一致,2008的要比2003的值要长。导致其他java系统对接单点登陆出现解析cookie错误。问题:iis7已经启用父路径,应用程序按照32位运行也是true;这个升级还需要配置些什么吗?解决后会有100分的额外奖励!!!!!附cookie值之前是win2003、iis6,用这个方法得到的cookie.value是【6AEEA3F7F7D7EE4EDA843EF3C92F22860D726CD7200782DAD892450A07F0CFEEC6F4CD5CC3878CABB78B0DE7D204836446077F9F7B9AB8E0C15F162E9F840518A02CC79DF330EFEA528B8A8C7ABDF412】这个string长度是160迁移到win2008、iis7后,同样的程序,得到的cookie.value是【3551E79BBF862281BD870996432B27474425C2E3DED4E309663D8D20840BA15B793EFFC24493D72F1D441A95B89D179E9BBFFB16D733D82FA3723EE498DD4B48A1046527FA3381AA1D383AECA62C0200FF6558926BDE7FCD20C6D1F8F4FFB45EF288594C7D728F1411DD5226286E2C6500000000】这个string长度是232

解决方案

解决方案二:
自顶,求助啊,
解决方案三:
MD5加的密,各位大大,冰天雪地跪求呀!!真心搞不定
解决方案四:
FormsAuthentication.SetAuthCookie("usrname",true);

这方法生成的cookie.value本来就是不定长的,会随username变化,2位的userName是160长,怀疑你是不是用不同的账号测了?如果程序相同账号相同,手上没IIS6只能帮顶了.
解决方案五:
感谢回复程序和账号确实相同。就只有环境不一样。win2003iis6和win2008iis7加密后的结果和username长短无关。无论多长在2003中也是160位,2008也是232位username是当前登录的账号。
解决方案六:
自己再次顶呀
解决方案七:
注意事项,参考
解决方案八:
是否与.netframework的版本有关,换一个高版本的试试、
解决方案九:
如果你希望保持一致,需要自己写一个MembershipProvider,自己重载SetAuthCookie。那么你想怎么做就你决定了。googlecustomMembershipProvider
解决方案十:
引用6楼wangnaisheng的回复:

注意事项,参考

忘记说了我们这个项目用的是forms表单类型。不是windows引用7楼wangnaisheng的回复:

是否与.netframework的版本有关,换一个高版本的试试、

win2003里面安装了.net2.0、3.0、3.5。win2008里面安装的是系统自带的.net3.5.1过会儿我在win2008里面装下win2003的这几个个环境试试。引用8楼devmiao的回复:

如果你希望保持一致,需要自己写一个MembershipProvider,自己重载SetAuthCookie。那么你想怎么做就你决定了。googlecustomMembershipProvider

恩这个兴许是闭源项目的缺点,不能由自己控制。这个项目我是临时接的,单点登录采用这种方式是之前搞的。而且接这个登录系统的其他系统,好多。不可能去再自己重新写一个。
解决方案十一:
我再次顶顶顶顶
解决方案十二:
看源码到这里,感觉不容易解决啊privatestaticHttpCookieGetAuthCookie(stringuserName,boolcreatePersistentCookie,stringstrCookiePath,boolhexEncodedTicket){Initialize();if(userName==null){userName=string.Empty;}if((strCookiePath==null)||(strCookiePath.Length<1)){strCookiePath=FormsCookiePath;}DateTimeutcNow=DateTime.UtcNow;DateTimeexpirationUtc=utcNow.AddMinutes((double)_Timeout);FormsAuthenticationTicketticket=FormsAuthenticationTicket.FromUtc(2,userName,utcNow,expirationUtc,createPersistentCookie,string.Empty,strCookiePath);stringstr=Encrypt(ticket,hexEncodedTicket);if((str==null)||(str.Length<1)){thrownewHttpException(SR.GetString("Unable_to_encrypt_cookie_ticket"));}HttpCookiecookie=newHttpCookie(FormsCookieName,str);cookie.HttpOnly=true;cookie.Path=strCookiePath;cookie.Secure=_RequireSSL;if(_CookieDomain!=null){cookie.Domain=_CookieDomain;}if(ticket.IsPersistent){cookie.Expires=ticket.Expiration;}returncookie;}

解决方案十三:
上面是4.0的代码
解决方案十四:
引用12楼findcaiyzh的回复:

上面是4.0的代码

为什么感觉不容易解决呢?之前做过将win2003中的system.web替换到win2008中的system.web,但是没有起到效用。帮忙看看,我替换的对不。C:WindowsMicrosoft.NETFrameworkv2.0.50727system.web.dll替换到2008的C:WindowsMicrosoft.NETFrameworkv2.0.50727system.web.dllC:WindowsMicrosoft.NETFramework64v2.0.50727system.web.dll
解决方案十五:
自己再顶大神们都帮帮忙吧
其他方案:
FormsAuthentication.SetAuthCookie(userName,true);默认采用最新版本的验证数据和加密方式可改为指定版本,手动设置cookie,FormsAuthenticationTicketauthTicket=newFormsAuthenticationTicket(1,//versionuserName,DateTime.Now,DateTime.Now.AddMinutes(30),false,"admins,users,xxx");stringencryptedTicket=FormsAuthentication.Encrypt(authTicket);System.Web.HttpCookieauthCookie=newSystem.Web.HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);

时间: 2024-11-08 14:04:09

解决后会有100分的额外奖励!!formsauthentication.setauthcookie(username,false)的cookie.value问题的相关文章

如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案,如果需要向指定的专家提问,您需要至少100分可用分

问题描述 如果您向专家提问,专家在登录CSDN网站后将第一时间内得到通知,并且为您提供答案,如果需要向指定的专家提问,您需要至少100分可用分

【大数据100分】大数据架构及行业大数据应用(中级教程)

[大数据100分]南大通用CTO武新:大数据架构及行业大数据应用[大数据中级教程] 主讲嘉宾:武新 主持人:中关村大数据产业联盟 副秘书长陈新河 承办:中关村大数据产业联盟 武新,南大通用高级副总裁兼CTO,法国奥尔良大学和法国国家科研中心博士:南大通用GBASE系列数据库产品的总设计师.在著名的甲骨文公司任职12年,是世界顶级的Oracle数据库专家.2010年获得中组部实施的国家"千人计划"荣誉(海外高层次人才引进计划),是国内基础软件行业唯一入选的数据库技术专家.对目前最新兴的列

【大数据100分】CESI吴东亚:大数据标准及应用(高级教程)

[大数据100分]CESI吴东亚:大数据标准及应用[大数据高级教程] 主讲嘉宾:吴东亚 主持人:中关村大数据产业联盟 副秘书长陈新河 承办:中关村大数据产业联盟 吴东亚,中国电子技术标准化研究院信息技术研究中心标准总监.1972年生,籍贯黑龙江.1992年毕业于东南大学自动控制系毕业,1992-2001年,在中国空间技术研究院硕士学习.工作,参加"神舟一号"飞船地面测试系统研制工作,积累了一线科研和工程经验.2001-2004年,北京理工大学博士学习.2004至今,中国电子技术标准化研

“大数据100分”首场交流:数据处理 “去贵族化”+机器可读新闻

[大数据100分] 主讲人:白硕 主持人:赵国栋 承办:中关村大数据产业联盟 中关村大数据产业联盟特别邀请白老师担纲首期"大数据100分"论坛主讲嘉宾! 白硕老师是上海证交所总工程师,北大计算机博士.数学系博士后.兼任中科院计算所.信息工程研究所.中国科学院大学博士生导师.还担任中国中文信息学会常务理事,全国金融标准化委员会证券分委员会副主任委员.白老师研究和工作领域横跨学术.产业.资本,对大数据方面的研究既处在实践前沿又具备理论高度. 以下为交流实况全文,中间穿插部分专家与白老师的互

100分求一个随机数生成算法

问题描述 500000元分给1000000个人,每个人分0.18到88元,正好分完.请问如何使用算法实现? 解决方案 解决方案二:decimalsumMoney=500000m;//总金额intremainPerson=1000000;Dictionary<string,decimal>dicResult=newDictionary<string,decimal>();//存储分配结果voidPenny(){decimalmoney=0m;//每人分到的金额for(inti=0;i

visual studio-64位程序 汇编 时的调用约定问题? [问题点数:100分]

问题描述 64位程序 汇编 时的调用约定问题? [问题点数:100分] 64位程序已经抛弃了_stdcall, 等, 这个OK 但是在使用 ml64 进行汇编时, 似乎仍然使用的是stdcall; 如下: // .asm .CODE Int_3 proc a:DWORD,b:DWORD,c:DWORD,d:DWORD mov ebx,a mov rax, 12345h ret Int_3 ENDP END ; 文件结束 // .asm 编译输出 000000013F051020 push rbp

[100分]求ms ajax中关于js 调用服务端代码的方法

问题描述 以前用AjaxPro好像很容易,但换成MsAjax后不知该怎么做.要能实现异步回传的,就是在页面中使用了UpdatePanel控件.我提问一般都是给100分的.知道的快来吧. 解决方案 解决方案二:没用过.解决方案三:该回复于2008-04-10 08:33:57被版主删除解决方案四:没用过.解决方案五:该回复于2008-04-10 08:33:55被版主删除解决方案六:我现在正在学一本书叫asp.netajax程序设计第II卷microsoftajaxlibrary异步通信层是陈黎夫

100分在线急求 程序中执行.sql脚本 mysql的

问题描述 我想要在程序中执行mysql的脚本文件比如说点击一个button执行aaa.sql,请各位大虾给与帮助,给100分! 解决方案 解决方案二:自己来顶解决方案三:顶不要沉啊解决方案四:顶不要沉啊解决方案五:如果有存储过程,直接点击button时执行相关存储.如果没有存储过程,单独放进一个文本文件吧,要执行的时候读文件传sql过去!不过怎么感觉这是在多此一举啊.后缀为sql的文件就算是查询分析器打开也不是会自动执行的.你还是得调用执行的命令对象.和一般写法没多大区别的啊.解决方案六:顶不要

如何开通短信平台,比如类似短信防伪那样的?另版块100分求解

问题描述 想给公司产品开通个短信查询服务,消费者139***购买了我们的产品后,根据产品上的一个查询码aaa,发送这个查询码aaa到指定的短信号如400**(就是我们想要开通的)什么的上面,那么我们短信平台400**就反馈给消费者139***该aaa相关的具体产品信息,有点类似短信防伪查询那样,请问我们怎样怎么做呢,找移动联通都说没有这样的业务,她们说是网站搞的这,和它们没有关系,竟是扯蛋请问如何开通怎样的服务呢,另外新浪以前有可以直接调用的webservice,现在也不可以用了,应该如何和新浪