我正在使用C#和.Net我需要在身份验证(使用成员资格提供程序)失败时将用户重定向到特定的URL。
我正在考虑使用
RedirectToLoginPage(String)
从MSDN:使用指定的查询字符串
将浏览器重定向到登录URL但我需要更改网址。
使用示例:
if (!Membership.ValidateUser(userName, password))
{// do smt here}
还有其他想法如何解决?
答案 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写了正确的解决方案