Имена и имена файлов cookie Asp.Net

У нас есть 2 приложения, которые используют Asp.Net Identity для обеспечения безопасности.

Они не имеют ничего общего друг с другом, но я оказался разработчиком обоих проектов.

Я столкнулся с довольно раздражающей проблемой с именем Cookie. Если я перейду к app1 и войду в систему, то в app2 и войдите в систему, я отсоединяюсь от app1.

Моя дикая догадка заключается в том, что это связано с тем, что 2 приложения используют одно и то же имя файла cookie.

Итак, для простоты разработки, а также потому, что я думаю, что это лучше, я ищу способ изменить имя файла cookie.

Любая подсказка?

Ответ 1

Хорошо, нашел это!

По умолчанию VS и Identity создадут в App_Start файл с именем Startup.Auth.cs

Этот файл содержит следующий код

            app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                    validateInterval: TimeSpan.FromMinutes(30),
                    regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            }
        });

Чтобы решить нашу проблему, мы должны установить свойство CookieName CookieAuthenticationOptions

CookieName = "my-very-own-cookie-name"

Вот оно, больше ничего!

ура

Ответ 2

Для FormsAuthentication изменение имени cookie происходит через web.config:

<authentication mode="Forms" >
  <forms loginUrl="~/Account/LogIn" timeout="2880" name=".cookie2" />
</authentication>