代码之家  ›  专栏  ›  技术社区  ›  Robert Koritnik

在两个web应用程序之间共享身份验证

  •  31
  • Robert Koritnik  · 技术社区  · 14 年前

    我有一个基本网站( 应用程序)在ie下运行。

    http://localhost:90/
    

    然后我创建了一个新的(这次 )应用程序并将其添加到

    http://localhost:90/mvc/
    

    但不只是作为一个简单的虚拟文件夹,而是作为 应用程序文件夹 应用程序池 运行它,与 申请。

    因为浏览器不知道在同一个域上有两个不同的应用程序,所以它的工作方式如下:

    1. 用户访问 http://localhost:90/
    2. 父应用程序将用户重定向到窗体身份验证屏幕
    3. 父站点添加身份验证cookie
    4. 用户访问 http://localhost:90/mvc

    我是否可以基于同一个cookie对用户进行身份验证?我将配置我的MVC应用程序登录重定向到父应用程序,以拥有共享的身份验证屏幕。但我想知道从那一刻起谁认证和工作。

    我读到一些关于分享的文章 system.web/machineKey 提供这种功能的值,但我希望有一些真实的例子。

    我知道这两个应用程序将无法共享会话状态,这不是问题,因为我不希望它们共享会话状态。我只需要一种单一登录(SSO/SSS)

    这可能吗? 怎么用?

    重要的

    我读过其他关于这个的问题/答案,但是他们不是在问跨域/跨服务器等问题。这个问题/答案在同一个I is网站上。

    2 回复  |  直到 14 年前
        1
  •  39
  •   Robert Koritnik    11 年前

    我自己找到的。

    MSDN: Forms Authentication Across Applications

    简言之

    必须在中配置计算机密钥 web.config

        2
  •  7
  •   KyleMit Steven Vachon    8 年前

    如果仍有人不能共享密钥,请使用 compatibilityMode="Framework20SP1"

    <machineKey validationKey="same key all over" 
                decryptionKey="same key all over" 
                validation="SHA1" decryption="AES"
                compatibilityMode="Framework20SP1"/>