Контроль входа - ошибка

На моей странице ASP.NET (2.0) есть элемент управления входом. Я обрабатываю событие LoggingIn следующим образом:

protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
{

    // go to database and find this user

    if (userTable != null && userTable.Rows.Count > 0)
    {
        int userID = Convert.ToInt32(userTable.Rows[0]["UserID"]);

        HttpCookie userIdCookie = new HttpCookie("UserID", userID.ToString());
        Response.AppendCookie(userIdCookie);

     }
     else
     {
         e.Cancel = true;
     }                
 }

Пользователь найден в базе. И в конце этой функции e.Cancel все равно устанавливается в false. Но затем произошла ошибка входа в систему. LoggedIn не происходит. И FailureText появляется на странице. Я не знаю, как это отладить :(


person Sevina    schedule 05.12.2009    source источник
comment
возможно, вы захотите просмотреть эту статью, которая достаточно хорошо объясняет аутентификацию с помощью форм — msdn .microsoft.com/en-us/library/aa480476.aspx   -  person Russ Cam    schedule 05.12.2009
comment
Это несколько сбивает с толку, не могли бы вы уточнить, что такое LoginError? Также что такое LoggedIn и FailureText - я думаю, они говорят сами за себя, однако, чем больше вы объясняете, тем меньше нам приходится гадать :-)   -  person Steffen    schedule 05.12.2009
comment
LoginError — это событие, возникающее при сбое входа в систему, а FailureText — это свойство элемента управления Login, которое можно использовать для передачи пользователю причины неудачного входа. Оба связаны с элементом управления входом ASP.NET — msdn.microsoft.com/en-us/library/   -  person Russ Cam    schedule 05.12.2009


Ответы (1)


Вы также обработали событие Authenticate?

<asp:Login id="Login1" runat="server"
            OnAuthenticate="MyOnAuthenticate">


private void MyOnAuthenticate(object sender, AuthenticateEventArgs e)
{
    bool isAuthenticated = false;
    isAuthenticated = YourAuthenticationMethod(Login1.UserName, Login1.Password);

    e.Authenticated = isAuthenticated;
}

private bool YourAuthenticationMethod(string UserName, string pwd)
{
    // Insert code that implements a site-specific custom 
    // authentication method here.             
}

Событие LoginControl Authenticated в MSDN

person p.campbell    schedule 05.12.2009