У меня есть приложение ASP.Net MVC, использующее аутентификацию Azure B2C, и роли идентификации для авторизации пользователей для доступа к частям приложения.Однако есть проблема, когда примерно через час выясняется, что время ролей истекло.Моя текущая теория заключается в том, что, поскольку он использует проверку подлинности cookie, срок действия cookie истекает, и поэтому роль отозвана.
Код для настройки этого приведен здесь:
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
CookieManager = new SystemWebCookieManager(),
SlidingExpiration = true
});
app.UseOpenIdConnectAuthentication( ...
Обратите внимание, что нет ExpireTimeSpan
установлено здесь.Претензии добавляются здесь:
public class MvcApplication : HttpApplication
{
void Application_PostAuthenticateRequest()
{
...
if (Request.IsAuthenticated)
{
var identity = ClaimsPrincipal.Current.Identities.First();
var myClaim = new Claim("Role", "admin");
identity.AddClaim(myClaim);
...
После тайм-аута ClaimsPrincipal.Current.Claims
пусты;поэтому пользовательские утверждения, которые я добавляю, и утверждения, которые выдает MS (например, nameidentifier).Как это очищается, и где находится настройка (при условии, что это настройка), которая сообщает , когда очистить?