2012-04-01 3 views
4

Я пытаюсь реализовать аутентификацию с помощью jquery, чтобы сделать запрос ajax методу страницы, который будет аутентифицировать пользователя. Это базовый пример, который я закодировал ниже. Фактическое приложение более сложное и не использует метод страницы для проверки подлинности. Проблема заключается в том, что свойство isAuthenticated в объекте User всегда ложно. Этот проект выполняется в vb, но я не против, если ответы/код находятся в C#.Проверка подлинности с помощью jQuery ajax

Ajax запрос:

$.ajax({ 
    type: 'POST', 
    url: 'default.aspx/authenticateUser', 
    data: "{ username: '" + username + "', password: '" + password + "' }", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (d) { 
     if (d.d == true) { 
      window.location.href = '/registrants/home.aspx'; 
     }    
    } 
}); 

Метод Страница:

<WebMethod()> 
Public Shared Function authenticateUser(ByVal username As String, ByVal password As String) As Boolean 
    If (isAuthenticated(username, password)) Then 
     Dim ticket As New FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(3), False, "member") 
     Dim cookie As New HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)) 
     HttpContext.Current.Request.Cookies.Add(cookie) 
     Return True 
    End If 
    Return False 
End Function 

ответ

3

Оказывается, проблема из-за мое непонимание, когда использовать HttpContext.Current.Request против HttpContext.Current.Response. Простая ошибка. Я нашел ответ here. После отправки запроса методу страницы для проверки cookie должен быть установлен с использованием HttpContext.Current.Response и получен с помощью HttpContext.Current.Request.

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