我正在使用ASP.NET成员身份验证我的网络应用程序。这对我来说很好。我现在必须实现密码到期。
如果密码已经过期,则用户应该被重定向到ChangePassword屏幕,不应该允许访问应用的任何其他部分而不用更改密码。
有很多aspx页面。如果密码已过期,一个解决方案可能是重定向到每个aspx的ChangePassword屏幕OnInit。是否有任何其他解决方案或建议。
谢谢,
ai
解决方法
再到
csgero’s answer,我发现你不需要在ASP.Net 2.0(3.5)中明确地添加一个这个事件的事件处理程序。
您可以在global.asax中简单地创建以下方法,并将其连接起来:
void Application_PostAuthenticateRequest(object sender,EventArgs e) { if (this.User.Identity.IsAuthenticated) { // get user MembershipUser user = Membership.GetUser(); // has their password expired? if (user != null && user.LastPasswordChangedDate.Date.AddDays(90) < DateTime.Now.Date && !Request.Path.EndsWith("/Account/ChangePassword.aspx")) { Server.Transfer("~/ChangePassword.aspx"); } } }