В приложении 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();
}
}
link Первый ответ в этой ссылке дает решение для получения идентификатора сеанса.
Какую версию.NET вы используете? Использование.NET Framework 4.5.2 Мне удалось получить значение SessionID, используя: string sessionID = HttpContext.Session.SessionID;
HttpContext.Current.Session
в методе контроллера WebAPI, потому что Session равен NULL. Этого не происходит в методах контроллера страниц MVC. И в методе контроллера MVC HttpContext.Current
, кажется, не существует. Я должен был бы использовать HttpContext.Session
в методах контроллера MVC. Я только что прочитал пост, в котором говорится, что методы WebAPI без сессий. ссылка