我使用控制asp:登录(asp.net webforms)并在验证之前我需要检查字段" user.MustChangePassword"。如果它是真的我需要重定向用户到另一页:
protected void signInControl_LoggingIn(object sender, System.Web.UI.WebControls.LoginCancelEventArgs e)
{
...
if (user.MustChangePassword)
{
e.Cancel = true; // prevent authentification
Response.Redirect("/ChangePassword.aspx");
return;
}
...
}
但重定向不起作用,页面只是重新加载。我怎么能解决这个问题?
答案 0 :(得分:0)
该页面路径看起来不正确。考虑到您的网页位于文件夹的根目录
,请添加如下所示的~
Response.Redirect("~/ChangePassword.aspx");
答案 1 :(得分:0)
尝试设置登录控件的DestinationPageUrl
属性。
E.g。
signInControl.DestinationPageUrl = "/ChangePassword.aspx";
答案 2 :(得分:0)
Login.LoggingIn事件。因此,我能想到的一件事是你必须匿名访问web.config中的ChangePassword.aspx页面。
<configuration>
<location path="ChangePassword.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
</configuration>
如果更改密码需要登录,则将重定向逻辑放在Login.LoggedIn事件中。