使用ASP.Net Forms和ASP.Net MVC 3(结合 - 我们正在将Web窗体更改为MVC),我有一个人员验证(用户名/密码)但由于存在特定条件的情况在他们的帐户上,他们需要在继续之前更改密码。
由于用户已经过身份验证,是否有一个全局位置,我可以阻止访问需要身份验证的网站部分,直到他们输入新密码?我知道可能有两个位置(一个用于Web窗体,另一个用于MVC)。
答案 0 :(得分:2)
在Application_AuthenticateRequest中检查特定条件。如果不满足(即必须更改pwd),请重定向到正确的页面。这适用于MVC和WebForms。
答案 1 :(得分:0)
您可以拥有一个自定义RoleProvider,它使用用户类中的标志来确定在验证用户角色之前是否需要更改密码。
答案 2 :(得分:0)
我将它作为User模型中的属性(即public bool ChangedPassword {get; set;})。创建用户时将设置为False,并在用户更改密码时设置为True。在任何受保护的操作之前,请检查ChangedPassword == True。