将使用ASP.NET标识的两个ASP.NET MVC项目合并在一起



我们有两个ASP.NET MVC项目,它们都使用ASP.NET Identity,我们需要将它们合并到一个项目中。我们已经制定了一个包含两个项目的解决方案,它们都使用相同的数据库来获取登录信息和相同的UserStores等。我们需要能够从一个项目的控制器重定向到另一个项目上的视图,并在两个项目之间保持登录凭据。我们已经将解决方案设置为在调试时同时启动两个项目,并且它们都正确加载,但登录不会在两者之间持续存在,我们无法从一个视图跳到另一个视图。这有可能吗?还是我们最好将两个项目合并为一个项目?

通常,我会说,是的,你最好将两个项目合并为一个,但你不一定必须这样做。在项目之间共享身份验证需要两件事:

  1. 项目必须位于同一主域上。它们可以在子域上,即project1.domain.com和project2.domain.com,但不能在完全不同的域上,即project1.com和project2.com。

    如果它们在子域上,则需要使用通配符cookie。在Startup.Auth.cs:中查找行

    app.UseCookieAuthentication(new CookieAuthenticationOptions {
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Account/Login"),
        ...
    });
    

    可以初始化的CookieAuthenticationOptions的属性之一是CookieDomain。将其设置为".yourdomain.com"

  2. 它们必须在两个Web.config中设置相同的机器密钥。请参阅:https://msdn.microsoft.com/en-us/library/w8h3skw9(v=vs.100).aspx

相关内容

  • 没有找到相关文章

最新更新