在asp.net mvc中获取用户的会话ID

时间:2017-03-23 15:35:47

标签: c# asp.net asp.net-mvc session

在asp.net mvc应用程序中,我想使用rest webservice返回与作为参数传递的会话ID相关联的用户名。

如何获取登录用户的sessionID?

我是否需要在登录方法中手动设置会话ID?

另外,如何使用会话ID获取用户信息?

任何帮助将不胜感激。谢谢!

帐户控制器中的登录方法:

[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();
    }

用户控制器中的Web服务方法:

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

        return sessionValue.SessionID.ToString();

    }
}

2 个答案:

答案 0 :(得分:5)

您使用的是哪个版本的.NET?使用.NET Framework 4.5.2我可以使用:string sessionID = HttpContext.Session.SessionID;

获取SessionID值

答案 1 :(得分:1)

link此链接中的第一个答案提供了获取会话ID的解决方案。