mvc4实现跨域名cokkie共享。

网上搜一下都很多,按上面的代码发现无法正常共享。我们的站点是使用IIS7

经过一段时间研究。实现了,。特将代码共享出来,首先是c#代码

      /// <summary>
        /// 登录成功后,设置COOKIE
        /// </summary>
        /// <param name="entity"></param>
        public void SaveUserFormsCookie(LoginUser entity, bool isRememberMe = false)
        {
            var userDate = SerializationHelper.JsonSerialize(entity);  //将对象序列化
            var cookieTime = DateTime.Now;
            var cookieExpiration = cookieTime.AddMinutes(FormsAuthentication.Timeout.TotalMinutes);
            if (isRememberMe)
            {
                cookieExpiration = cookieTime.AddYears(1);
            }
            var ticket = new FormsAuthenticationTicket(1, entity.Username, cookieTime, cookieExpiration, false, userDate);
            var hash = FormsAuthentication.Encrypt(ticket);

            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash)
            {
                Expires = cookieExpiration,
                Domain = FormsAuthentication.CookieDomain,
                Path = FormsAuthentication.FormsCookiePath
            };
            HttpContext.Current.Response.Cookies.Add(cookie);
        }

  然后是web配置,必须要有一个加密算法的匹配。我们增加的cokkieY有做加密。然后如果你是.net 4 ,和4.5加密算法还不一样,必须统一,接下来是Web.config配置节点 <system.web>增加

  <httpRuntime targetFramework="4.0" /> 这个版本最好不同站点统一一下。按这样的配置即可共享
<compilation debug="true" targetFramework="4.0" />
    <httpRuntime targetFramework="4.0" />
    <!--共享cokkies-->
    <authentication mode="Forms">
      <forms loginUrl="~/account/login" name="accountUser" timeout="720" domain="xxx.com" path="/"></forms>
    </authentication>
    <httpCookies domain="kaopu001.com" />
    <machineKey validationKey="69C632A1E794CD859422A7C4F2BBD3C6783A84488AF5646B610171C058C1E2F78D8FB5823681ABD108BC1E5427C99F5EB3B69EE1D00235276EF4898F9972EA28" decryptionKey="BC5B10779346BD18168E37F5660D89A17D8B7CFF14AB0AA5" decryption="3DES" validation="SHA1"/>

  

mvc4实现跨域名cokkie共享。,布布扣,bubuko.com

时间: 2024-10-28 18:52:04

mvc4实现跨域名cokkie共享。的相关文章

利用localStorage事件来跨标签页共享sessionStorage

//干货 利用localStorage事件来跨标签页共享sessionStorage //因为cookie保存字节数量有限,很多童鞋考虑用html5 storage来保存临时数据,Sessionstorage就比较适合来保存临时数据了. //但有个问题呵:Sessionstorage:不支持跨标签页共享数据,就是说Sessionstorage只在同一个页面内有效,即使用一域名,新打开一个tab窗口,也是不能共享Sessionstorage的. //那么有没有办法呢,那是有的.... //原理是运

PHP实现跨服务器session共享的方法教程

今天带来PHP实现跨服务器session共享的方法教程. 本文实例讲述了PHP实现cookie跨域session共享的方法.分享给大家供大家参考,具体如下: 做过web开发的小伙伴们都了解cookie和session,cookie是存储在客户端的,session是存储在服务器的. 本篇主要通过一些实践中的案例和大家分享一下踩到坑,重点说明了cookie跨域问题和session服务器共享问题,以php语言为使用语言进行说明. 先聊聊cookie 设置cookie无效 1 setcookie("ss

session跨域和ajax跨域名

后台跨域和ajax跨域名: 后台跨域: www.baidu.com   主域名(一级域名一般以www开头) news.baidu.com   二级域名 (a.test.com和b.test.com有相同的域,和test.a.com不是同一个域) 同一个域下可以使用setcookie( '名字' , 'session_id' , 'time()+3600' , '/' , '域' );来存储session_id. 例如:a.php在a.test.com下    b.php在b.test.con下

ajax 跨域名调用

在ajax 中要跨域名 请求的时候要注意 1. dataType: 'jsonp', 2. jsonp: 'callback', <script type="text/javascript"> $(document).ready(function () { var urle = "http://www.hao123.com"; $.ajax({ url: urle, type: 'GET', dataType: 'jsonp', jsonp: 'call

二级域名session 共享方案

二级域名session 共享方案 1.利用COOKIE存放session_id(); 实例: 域名一文件php代码: <?php session_start(); setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".session.com"); $_SESSION['user_name'] = '梁山良民'; echo $_SESSION['user_name'];

跨进程边界共享内核对象

正在拜读<windows核心编程>,稍后总结.---------XiaoF 先说说为何要实现此功能   1,利用文件映射对象,可以在同一电脑的不同进程之间共享数据块.   2,借助邮件槽和命名管道,在网络中的不同计算机上运行的进程相互发送消息.   3,互斥量.信号量.事件,允许不同进程中的线程做同步.如何实现,方法3种:使用对象句柄继承(父子进程):为对象命名:复制对象句柄.使用对象句柄继承    只有在父子进程关系,才可以用对象句柄继承方法.    步骤如下:    1,当父进程创建一个内

IFRAME跨域名的解决方法,终结版(小张.NET原创)[摘自 西部数码]

以前碰到此类问题很郁闷,MS为什么开发出这么个鸟IE,让这些人不得不跟着他走,后来想了想,也是,为了安全期间,还是要加上限制的,要不,别人可以随便的改你的网页内容,等等...好了,其它的废话不说了,看看下边的吧:记得要将域名指为域名,而不是WWW或者其它的,例:shagndu8.com 而不能指向www.shangdu8.com 1.请在父网页上加上以下代码:1<SCRIPT LANGUAGE="VBScript">2    document.domain = "

java 结合jQuery实现跨域名获取数据

一.什么是跨域? 由于浏览器出于安全的考虑,采取了同源策略的限制,使得jQuery无法直接跨域名互相操作对象或数据.例如:a.com 域名下的 a.html页面利用jQuery无法操作b.com域名下b.html页面的对象或是数据,并且默认情况下也不能操作test.a.com域名下的 test.html的对象或是数据.只要满足下面条件的jQuery都会视为跨域名: 1.主域相同,子域不同,如xxx.aaa.com和yyy.aaa.com 2.域名相同,端口不同,如xxx.aaa.com:8000

ASP.NET二级域名站点共享Session状态

前面一篇文章提到了如何在使用了ASP.NET form authentication的二级站点之间共享登陆状态, http://www.cnblogs.com/jzywh/archive/2007/09/23/902905.html, 今天, 我要写的是如何在二级域名站点之间,主站点和二级域名站点之间共享Session. 首先, Session要共享,站点之间SessionID必须要一致,那怎么保证SessionID一致呢? ASP.NET中的SessionID是存储在客户端的cookie之中键