繁体   English   中英

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

[英]Membership providers - How to change programmatically the default page for Redirect

我正在使用C#和.Net,当身份验证(使用成员资格提供程序)失败时,我需要将用户重定向到特定的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");
   }
}

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

由于要在身份验证失败时进行重定向,因此您可以做的另一件事是处理身份验证客户端失败导致的401 http状态,并从那里重定向到您想要的页面。

根据此https://stackoverflow.com/a/749257/1495554 ,无法使用标准方法来实现您想要的效果,@ ZedBee编写了正确的解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM