title: Sharing .AspNet.ApplicationCookie between two MVC projects
body: <p>I have a Web project to login our users. It signs a user in, creates the ".AspNet.ApplicationCookie" cookie and then redirects to a page "~/Views/../Redirect.cshtml" that will choose, based on some rules, what will be the Website user will be redirected to. Very simple, a "redirecting..." message and a setTimeout function.</p>
  
  <p>The problem is...website 2 does not recognize cookie created by site 1 and just moves the user back to site 1.</p>
  
  <p>Some information:
  1 - Works running both sites locally
  2 - Site 1 and 2 are in the same server running on the same domain, just different ports.
  3 - Both sites share the same ApplicationUserManager.Create call since I moved this class to a Domain project.</p>
  
  <p>Startup.cs is as follows:</p>
  
  <pre><code>public void ConfigureAuth(IAppBuilder app)
          {
              // Configure the db context, user manager and signin manager to use a single instance per request
              app.CreatePerOwinContext(AccountDbContext.Create);
              app.CreatePerOwinContext&lt;ApplicationUserManager&gt;(ApplicationUserManager.Create);
              app.CreatePerOwinContext&lt;ApplicationSignInManager&gt;(ApplicationSignInManager.Create);
  
              // Enable the application to use a cookie to store information for the signed in user
              // and to use a cookie to temporarily store information about a user logging in with a third party login provider
              // Configure the sign in cookie
              app.UseCookieAuthentication(new CookieAuthenticationOptions
              {
                  AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                  LoginPath = new PathString("/Account/Login"),
                  Provider = new CookieAuthenticationProvider
                  {
                      // Enables the application to validate the security stamp when the user logs in.
                      // This is a security feature which is used when you change a password or add an external login to your account.  
                      OnValidateIdentity = SecurityStampValidator.OnValidateIdentity&lt;ApplicationUserManager, ApplicationUser&gt;(
                          validateInterval: TimeSpan.FromMinutes(30),
                          regenerateIdentity: (manager, user) =&gt; user.GenerateUserIdentityAsync(manager, DefaultAuthenticationTypes.ApplicationCookie))
                  }
              });
              app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
  
              // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
              app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
  
              // Enables the application to remember the second login verification factor such as phone or email.
              // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
              // This is similar to the RememberMe option when you log in.
              app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
          }
  </code></pre>