Ответ 1
Если ваш сервер настроен на использование аутентификации Cookie, сервер вернет куки файл в браузер, содержащий зашифрованные и подписанные утверждения о пользователе.
Этот файл cookie по умолчанию имеет имя:.AspNet.ApplicationCookie.
Этот файл cookie будет храниться в вашем браузере до истечения срока его действия (по умолчанию 14 дней и с истечением срока действия) или вы явно вычеркиваете, который удаляет файл cookie.
Если вы откроете другую вкладку или окно того же типа браузера, после того, как вы войдете в систему, он также будет иметь тот же файл cookie и передать его при отправке запросов на любой из ваших двух веб-сайтов.
Если оба сайта настроены на поиск одного и того же имени cookie, они оба будут видеть его и смогут расшифровать cookie аутентификации, поскольку они используют один и тот же компьютер, и, таким образом, машинный ключ, который используется сервером для шифрования/дешифрования и подпишите cookie. В файле cookie ничего не говорится о том, на каком сайте он находится на том же сервере, поэтому заявка "User1", которая хранится на вашем веб-сайте WebApplication1, будет считаться аутентифицированной на WebApplication2. Средство проверки подлинности OWIN не проверяет базу данных, если в входящем запросе есть допустимый файл cookie. Он просто будет использовать предоставленные зашифрованные претензии (имя пользователя, возможно роли и прочее) в файле cookie.
Если вы установите CookieName по-разному в своих двух веб-приложениях, они не будут использовать один и тот же файл cookie для проверки подлинности, и, следовательно, пользователь, прошедший проверку подлинности на одном сайте, не будет аутентифицироваться на другом.
Вы можете установить CookieName в свой Startup.Auth.cs следующим образом:
public partial class Startup
{
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
CookieName = "MyCookieName",
});
}
}