WebSecurity.CurrentUserId = -1

Я разрабатываю приложение для Android, которое должно войти/зарегистрироваться и прочитать некоторые данные из базы данных.

У меня есть контроллер входа WebApi.

и это моя проблема

[HttpPost]
public HttpResponseMessage Post(Login model)
{
    if (WebSecurity.Login(model.UserName, model.Password))
    {
        int userid = WebSecurity.CurrentUserId;// <- this value is = -1
        string name = WebSecurity.CurrentUserName;// <- this value is = ""
        some query where i need the user id(userid);
    }
    else 
        ...
}

Почему после успешного входа в систему у меня все еще есть значение -1?

Я заметил, что даже в проекте mvc происходит то же самое, но после успешного входа в систему пользователь перенаправляется на другую страницу, где перечислены данные (когда этот контроллер выполняется, текущий идентификатор пользователя уже обновляется).


person trajce    schedule 05.06.2014    source источник


Ответы (1)


WebSecurity.Login устанавливает файл cookie. Этот файл cookie должен быть повторно прочитан платформой до того, как пользователь будет аутентифицирован, что означает, что должен быть выполнен другой веб-запрос.

Другими словами, вы должны перенаправить на другую страницу или должен прийти другой веб-запрос, прежде чем запрос будет аутентифицирован.

person Erik Funkenbusch    schedule 05.06.2014