我有ASP.Net MVC5网站。有一个登录视图/页面。
为了验证用户,我在控制器中有一个动作。现在,如果用户凭证有效,我设置会话变量。
代码段
public ActionResult ValidateUser(string userName, string pwd)
{
User dal = new User();
bool flag = dal.Authenciate(userName,pwd);
if(flag)
{
Session['userId'] = userName;
}
else
{
//user invalid
}
return View();
}
现在对于经过身份验证的用户,后续请求点击将转到 WebApi控制器。
我需要访问WebApi控制器中的Session [' userId']值,但WebApi在REST原则上没有任何Session。
现在我的问题是,处理这种要求的正确方法是什么?
WebApi控制器
public IEnumerable<Course> Get()
{
int userId = Convert.ToInt32(Session['userId']);
User dal = new User();
IEnumerable<Course> courses= dal.GetCourses(userId);
return courses;
}