public async Task OnAuthorizationAsync(AuthorizationFilterContext context) { bool isAnonymous = context.ActionDescriptor.HasAttribute <AllowAnonymousAttribute>(); if (isAnonymous) { return; } var userInfo = context.HttpContext.Session.Get <LoginUserContext>(CommonStrings.COMMON_INFO_IN_SESSION); bool isNoCheck = context.ActionDescriptor.HasAttribute <NoCheckPasswordExpiredAttribute>(); if (userInfo?.PasswordExpired == true && !isNoCheck) { logger.Info("パスワードの有効期限切れ。パスワード変更画面に遷移します。"); string passwordChangeUrl = new PathString("/K0030_ChangePassword/Index"); //パスワードの有効期限が切れている場合は、パスワード変更画面にしかいけない。 if (context.HttpContext.Request.IsAjaxRequest()) { context.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized; context.Result = WebUtil.JsonContent(AjaxResult.CreateRedirectResult(passwordChangeUrl)); } else { context.Result = new RedirectResult(passwordChangeUrl); } } }