成员资格提供程序-如何以编程方式更改重定向的默认页面

本文关键字:方式更 编程 重定向 默认 程序 成员 | 更新日期: 2023-09-27 17:58:42

我正在使用C#和。当身份验证(使用成员资格提供程序)失败时,Net I需要将用户重定向到特定的URL。

我想用

RedirectToLoginPage(String)

从MSDN:将浏览器重定向到具有指定查询字符串的登录URL

但我需要更改URL。

使用示例:

 if (!Membership.ValidateUser(userName, password))
    {// do smt here}  

还有其他解决方法吗?

成员资格提供程序-如何以编程方式更改重定向的默认页面

对我来说,这真的很管用

aspx:

Username: <br />
<asp:TextBox runat="server" ID="txtUserName"></asp:TextBox>
<br />
Password: <br />
<asp:TextBox runat="server" ID="txtPassword" TextMode="Password"></asp:TextBox>
<br />
<asp:Button runat="server" ID="btnLogin" Text="Login" onclick="btnLogin_Click" 
    style="height: 26px" />

代码背后:

protected void btnLogin_Click(object sender, EventArgs e)
{
   string username = txtUserName.Text.Trim();
   string password = txtPassword.Text.Trim();
   if (Membership.ValidateUser(username, password))
   {
     //...             
   }
   else
   {
       Response.Redirect("Hello.aspx");
   }
}

在发布用于检查用户有效性的凭据时,还可以传递"return to url"查询参数或其他信息。在后面的逻辑中,以编程方式检查用户的有效性,如果用户成功通过身份验证,则重定向到给定的URL,或者在您的情况下,如果身份验证失败,则重定向至某个页面。

如果身份验证失败,您还可以做另一件事,因为您想重定向,那就是处理身份验证失败客户端产生的401http状态,并从那里重定向到您想要的页面。

根据https://stackoverflow.com/a/749257/1495554没有办法使用标准的方法来做你想做的事情,@ZedBee写了正确的解决方案