Я использую Owin для авторизации через Google oAuth. Вот как настроены мои файлы cookie:
// 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("/Authentication/Login")
});
// Use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
Я использую как UseCookieAuthentication, так и UseExternalSignInCookie, и кажется лишним. Какой из этих двух типов проверки подлинности следует указать для методов IAuthenticationManager (SignIn, SingOUt и т.д.)? Или я должен держать только один из них?
Обновление. Что меня больше смущает, так это метод SignIn:
private async Task SignInAsync(ApplicationUser user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
Значит, вызывается из ExternalCookie, но появляется в ApplicationCookie.