2013-02-12 4 views
0

Я использую C# и .Net Мне нужно перенаправить пользователя на определенный URL-адрес, когда аутентификация (с использованием поставщиков членства) не удалась.Поставщики членства - Как изменить программно страницу по умолчанию для перенаправления

Я думал использовать

RedirectToLoginPage(String) 

Из MSDN: перенаправляет браузер на входе в систему URL с указанной строкой запроса

Но мне нужно, чтобы изменить URL.

Пример использования:

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

Любая другая идея, как решить эту проблему?

ответ

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

При отправке учетных данных для проверки действительности пользователя также передайте параметр запроса «возврат к url» или что-то еще. И в логике позади программно проверяют достоверность пользователя, и если пользователь успешно аутентифицирован, а затем перенаправляется на заданный URL-адрес или в вашем случае, если аутентификация завершилась неудачно, перенаправите его на определенную страницу.

Еще одна вещь, которую вы могли бы сделать, поскольку вы хотите перенаправить, если аутентификация не удалась, - это обработать статус http 401, который возникает из-за неудачной аутентификации на стороне клиента, и перенаправить на страницу, которую вы хотите оттуда.

0

Согласно этому https://stackoverflow.com/a/749257/1495554 нет никакого способа, чтобы использовать Standart методы, чтобы сделать, как вы хотите, @ZedBee написал правильное решение

Смежные вопросы