Получить идентификатор сессии пользователя в asp.net mvc

2

В приложении asp.net mvc я хотел бы использовать веб-сервис rest, чтобы вернуть имя пользователя, связанное с идентификатором сеанса, переданным как параметр.

Как получить идентификатор сеанса вошедшего в систему пользователя?

Нужно ли устанавливать идентификатор сеанса вручную в моем методе входа?

Также как я могу получить информацию о пользователе, используя идентификатор сеанса?

Любая помощь будет оценена. Спасибо !

Метод входа в Account Controller:

[HttpPost]
    public ActionResult LogIn(UserLoginView ULV, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            UserManager UM = new UserManager();
            string password = UM.GetUserPassword(ULV.EmailID);

            if (string.IsNullOrEmpty(password))
                ModelState.AddModelError("", "*The Email-ID or Password provided is incorrect");
            else
            {
                if (ULV.Password.Equals(password))
                {
                    FormsAuthentication.SetAuthCookie(ULV.EmailID, false);
                    if (Url.IsLocalUrl(returnUrl))
                    {
                        return Redirect(returnUrl);
                    }
                    else
                    {
                        return RedirectToAction("Index", "Home");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "*The Password provided is incorrect");
                }
            }
        }

        return View();
    }

Метод веб-службы в User Controller:

 public class UserController : ApiController
    {
    [HttpGet]
    public string UserInfo()
    {
       HttpSessionState sessionValue = HttpContext.Current.Session;

        return sessionValue.SessionID.ToString();

    }
}
  • 0
    Да. Я только что подтвердил, что решение здесь решит вашу проблему. Очень круто.
Теги:
asp.net-mvc
session

2 ответа

1
Лучший ответ

link Первый ответ в этой ссылке дает решение для получения идентификатора сеанса.

4

Какую версию.NET вы используете? Использование.NET Framework 4.5.2 Мне удалось получить значение SessionID, используя: string sessionID = HttpContext.Session.SessionID;

  • 0
    Я использую ту же версию. Тем не менее я получаю исключение нулевой ссылки в строке sessionID.
  • 0
    Понимаю. Я также получаю исключение NullReferenceException при попытке получить SessionID из HttpContext.Current.Session в методе контроллера WebAPI, потому что Session равен NULL. Этого не происходит в методах контроллера страниц MVC. И в методе контроллера MVC HttpContext.Current , кажется, не существует. Я должен был бы использовать HttpContext.Session в методах контроллера MVC. Я только что прочитал пост, в котором говорится, что методы WebAPI без сессий. ссылка
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню