Я пытаюсь реализовать политику истечения срока действия пароля и нашел хороший blog showing an example - но это в MVC. Я пытаюсь реализовать его для WebApi2. Я ожидал, что WebApi будет иметь аналогичную функциональность, но до сих пор не удалось найти правильные пространства имен/методы для вызова.Как реализовать атрибут AuthorizationContext на WebApi?
Соответствующая часть кода:
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.ActionDescriptor.IsDefined(typeof(SkipPasswordExpirationCheckAttribute), inherit: true)
&& !filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(SkipPasswordExpirationCheckAttribute), inherit: true))
{
...
if (timeSpan.Days >= _maxPasswordAgeInDay)
{
...
filterContext.HttpContext.Response.Redirect(urlHelper.Action("ChangePassword", "Account", new { reason = "passwordExpired" }));
}
}
base.OnAuthorization(filterContext);
}
На WebAPI, метод коррекции подписи
OnAuthorization(HttpActionContext actionContext)
вместо(AuthorizationContext filterContext)
- как я могу проверитьSkipPasswordExpirationAttribute
с помощью ActionContext?Как только я решил, что срок действия пароля истек, какое действие следует предпринять? Я не думаю, что я могу «перенаправить» пользователя из WebApi, поскольку это не имеет никакого смысла.