【发布时间】:2017-08-24 18:06:40
【问题描述】:
我正在尝试实施密码过期策略并找到了一个好的blog showing an example - 但那是在 MVC 中。我正在尝试为 WebApi2 实现它。我希望 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)- 如何使用 actionContext 检查SkipPasswordExpirationAttribute?一旦我确定密码已过期,我应该采取什么措施?我不认为我可以从 WebApi “重定向”用户,因为这没有任何意义。
【问题讨论】:
标签: c# asp.net-web-api asp.net-identity