使用Cookie进行多站点验证

时间:2015-12-17 15:01:16

标签: asp.net-mvc authentication owin mixed-authentication

我有多个内联网站点,它们位于同一个域中,如:

  • 测试网站/ SITE1
  • 测试网站/站点2

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

是否有指南可以关注它?

1 个答案:

答案 0 :(得分:0)

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

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

您可以通过在web.configs

中使用相同的per the Javadoc元素来实现此目的

例如,将以下内容添加到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",

        });

希望这有帮助。