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

时间:2013-02-12 07:30:25

标签: c# asp.net .net asp.net-membership

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

我正在考虑使用

RedirectToLoginPage(String)

从MSDN:使用指定的查询字符串

将浏览器重定向到登录URL

但我需要更改网址。

使用示例:

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

还有其他想法如何解决?

3 个答案:

答案 0 :(得分:2)

对我而言,这确实有效

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");
   }
}

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

根据这个https://stackoverflow.com/a/749257/1495554,没有办法像你想要的那样使用标准方法,@ ZedBee写了正确的解决方案