使用会话为MVC和Web API创建auth属性

时间:2014-08-19 10:34:30

标签: asp.net-mvc asp.net-web-api

我有用于UI(angularjs)的MVC 4控制器和用于使用UI进行数据管理的WebAPI控制器的一些子集。我需要添加身份验证处理程序或两者:

class MySuperAuthAttribute{}

[MySuperAuth]
public class MyWebApiController{}

[MySuperAuth]
public class MyWebMvcController{}

在auth处理程序中,我只需检查用户是否在某个组中。此外,我还希望在当前会话中存储此信息(该用户已通过身份验证)

在我的属性处理程序中,我可以写出类似UserProvider.CheckInGroup(userName)的内容。

我应该如何存储此结果并在下次通话中使用它?

例如:

if (HttpContext.Session['MY_AUTH_KEY'] != null && HttpContext.Session["MY_AUTH_KEY"] == "OK") {
    return true;
}
else {
    if (UserProvider.CheckInGroup(userName))
        HttpContext.Session['MY_AUTH_KEY'] = "OK";
    .....
}

1 个答案:

答案 0 :(得分:0)

不确定您是否对问题足够清楚,但在您的属性中,您可以使用

访问会话
HttpContext.Current.Session

只需要一个对System.Web的引用即可。