MVC 5&身份2.2.1 - 身份验证到期&每个用户更新密码

时间:2015-10-06 20:34:22

标签: c# authentication cookies asp.net-mvc-5 asp.net-identity

我是ASP.NET MVC 5的新手,希望我的网站能够:

  • 使当前会话失效并在m分钟不活动后强制登录
  • 强制用户在d天后输入新密码

其中m和d是存储在数据库中的 用户特定的

重新开始会话:我不确定是否尝试自定义验证身份验证Cookie或会话Cookie或两者?似乎OWIN / ASP.NET Identity 2.2.1机制仅允许ConfigureAuth(IAppBuilder app)内的auth cookie到期的通用设置:

public void ConfigureAuth(IAppBuilder app)
{
    app.CreatePerOwinContext(ApplicationDbContext.Create);
    app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
    app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        ExpireTimeSpan = // ...some expiration value here
        //...other options
    });                      
}

是否有一些备用入口点,我可以在身份验证期间为当前用户的身份验证Cookie过期设置自定义值?在此站点正在替换的旧ASP.NET Web窗体应用程序中,在登录后很容易用自定义过期值替换auth cookie,但在ASP.NET Identity 2.2.1下似乎无法以相同方式访问它?

重新强制密码更新:我已经看到了各种过滤器解决方案:一个here基于扩展AuthorizeAttribute并覆盖OnAuthorization()方法。另一个here扩展ActionFilterAttribute并调用OnActionExecuting()方法。两者看起来都会完成这项工作,但会分别为每个请求或每个操作调用(大概是?) - 这似乎有点过分,因为我只需要在每个会话中检查密码到期时间一次?

我不确定这里的最佳做法,所以我很感激你的一些指示。

0 个答案:

没有答案