OWIN аутентификация, истечение срока действия текущего токена и удаление cookie
У меня есть OWIN Middleware для аутентификации. У нас есть два типа аутентификации на месте. Первый тип является токеном-носителем с использованием следующей конфигурации
var OAuthOptions = new OAuthAuthorizationServerOptions
{
AuthenticationType = DefaultAuthenticationTypes.ExternalBearer,
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true,
AccessTokenFormat = new SecureTokenFormatter(GetMachineKey())
};
И второй тип использования аутентификации cookie для внешнего входа
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive,
CookieHttpOnly = true,
CookieSecure = CookieSecureOption.SameAsRequest,
CookieName = ".AspNet." + DefaultAuthenticationTypes.ExternalCookie,
ExpireTimeSpan = TimeSpan.FromMinutes(5),
TicketDataFormat = new SecureTokenFormatter(GetMachineKey())
});
Когда пользователь выходит из системы, мы фактически выпускаем два выхода
Request.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie);
А также
Request.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ExternalBearer);
В первом случае я ожидаю увидеть файл cookie .AspNet.ExternalCookie, удаленный из браузера, а это не так. Со вторым я ожидаю, чтобы мой токен был признан недействительным, а User.Current.Identity = null, чего нет.
Итак, как я могу 1) Физически выйти из текущего удостоверения для текущего сеанса? 2) Удалить внешний Cookie из браузера?