使用Cookie进行多站点身份验证



我有多个位于同一域的intranet站点,如:

  • 试验场地/场地1
  • 试验场地/场地2

在这些应用程序中,我使用OWIN混合身份验证。但我找不到在一个网站上对用户进行身份验证,而在其他网站上使用身份验证的方法。

有导游跟着它走吗?

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

您需要允许testsite/site1和testsite/site 2读取相同的身份验证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",
        });

希望这能有所帮助。

最新更新