zoukankan      html  css  js  c++  java
  • asp.net forms 身份验证方式下跨域登录信息共享的实现方法

    背景:之前我在公司做了一个用户管理后台,是基于 asp.net forms 身份验证的方式实现的。最近有同事提出需将他的管理后台加入到我的管理后台中,避免内容部门的同事因内容管理的需要四处登录。出于某种原因,他的程序又必须放在另外一台机器另外一个站点的某个目录下,开发工具均为 vs2008 。经过一番折腾,终于弄好了。现将过程记录下来以备忘。
    下面假设我已做好的站点为 A(http://a.abc.com),同事要加入的站点为 B 站(http://b.abc.com/)的虚拟目录 xxx 。方法是配置 A, B  站的 web.config .
    1.配置 system.web/machineKey 节点。务必保持2个站点的此节点完全一致; 可参见: http://www.aspnetresources.com/tools/keycreator.aspx 生成
    2.2个 web.config 都配置为 forms 验证方式( system.web/authentication 节);
    3.2个 web.config 节都配置 system.web/httpCookies  为 <httpCookies domain=".abc.com"/> ;我认为这是很关键的一步,开始配置没有成功,在网上找了相关资料都没有详细说明这个,在实际使用中却不能生效。后来我用 firefox 的 HttpFox 插件前后查看,仔细对比,原来在 A 站点登录的地方通过配置后会生成两个名称相同但所属于的域名不同的 cookie  , 一个是默认站点 a.abc.com ,另一个是配置的 .abc.com ; B 站点就通过配置的域名 cookie 获取到 。
    完整的配置如下:
    身份验证配置节
    <!-- 身份验证配置节 -->
          
    <authentication mode="Forms">
            
    <forms loginUrl="~/default.aspx" defaultUrl="~/mainIndex.aspx" name=".mymanage"
                   protection
    ="All" domain=".abc.com"
                   path
    ="/" slidingExpiration="true" timeout="60"></forms>
          
    </authentication>

          
    <machineKey 
    validationKey="EF936296B4B062FFD6B7074C0501D7CCEFB50C19A75613AEEC603B4EF5F42AEDC463FDE81707795DDAA5FD4AA0D88CC30E9D413699A7E814358876FC9E75B883"
    decryptionKey
    ="948F668DFEEC39CB8BF07E222BFEED5C5B5B9FF427E0F92976534EE8D517F325"
    validation
    ="SHA1"
    decryption
    ="AES"
    />

          
    <authorization>
            
    <deny users="?"/>
          
    </authorization>
          
    <httpCookies domain=".abc.com"/>
      
    <!-- End 身份验证配置节 -->


  • 相关阅读:
    51nod 1463 找朋友 (扫描线+线段树)
    51nod 1295 XOR key (可持久化Trie树)
    51nod 1494 选举拉票 (线段树+扫描线)
    51Nod 1199 Money out of Thin Air (树链剖分+线段树)
    51Nod 1287 加农炮 (线段树)
    51Nod 1175 区间中第K大的数 (可持久化线段树+离散)
    Codeforces Round #426 (Div. 1) B The Bakery (线段树+dp)
    前端基础了解
    git 教程
    HIVE 默认分隔符 以及linux系统中特殊字符的输入和查看方式
  • 原文地址:https://www.cnblogs.com/infozero/p/1658586.html
Copyright © 2011-2022 走看看