0

我有多个位于同一域中的 Intranet 站点,例如:

  • 测试站点/站点1
  • 测试站点/站点2

在这些应用程序中,我使用OWIN-Mixed身份验证。但是我找不到在一个站点中对用户进行身份验证并在其他站点中使用身份验证的方法。

有指南可以遵循吗?

4

1 回答 1

0

OWIN-Mixed 有一个 Windows 身份验证入口点,但之后使用常规表单身份验证。

您需要允许 testsite/site1 和 testsite/site2 读取相同的身份验证 cookie。为此,您需要确保使用相同的密钥对 cookie 进行加密。

您可以通过在两个 web.configs中使用相同的machineKey元素来实现这一点

例如,将以下内容添加到 Site1 和 Site2 的 web.config 文件中

<machineKey 
  validationKey="55304E97702846DD86E818E6A4924952B3B2D28A06E3F6CC05919C044FDEF6FC0F578FA366ECD838F34AE1806219B4AB1241FFF9CF1B935B46E559286F17AD19"
  decryptionKey="2D18B05A7B82E04AFA36D94658A64281247D81494C95C87A1F2BCDA6C1539437"
  validation="SHA1" decryption="AES"

/>

确保 cookie 域和名称相同。还要确保两个应用程序都在同一个域中。

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            CookieDomain = ".testsite.com",
            CookieName = "AuthenticationCookie",

        });

希望这可以帮助。

于 2015-12-17T15:35:17.687 回答