我正在尝试创建权限属性以在我的控制器的每个操作中进行配置,因此此自定义属性应该从用户获取sessionId.我的代码是这样的:
public class PermissionChecker: ActionFilterAttribute
{
private int _permissionId { get; set; }
private IUserSelectorService _userService { get; set; }
public PermissionChecker(int permissionId)
{
_permissionId = permissionId;
_userService = new UserSelectorService();
}
public PermissionChecker(int permissionId, IUserSelectorService userService)
{
_permissionId = permissionId;
_userService = userService;
}
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (_userService.HasPermission(_permissionId, /* here I must pass the session["Id"]*/)){
base.OnActionExecuting(actionContext);
return;
}
throw new HttpException(401, "Unauthorized");
}
}
Run Code Online (Sandbox Code Playgroud)
Mih*_*hai 10
用这个
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if(filterContext.HttpContext.Session != null)
{
var id = filterContext.HttpContext.Session["Id"];
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 鉴于您使用的是MVC 4并且没有
public override void OnActionExecuting(ActionExecutingContext filterContext)
Run Code Online (Sandbox Code Playgroud)
尝试使用
System.Web.HttpContext.Current.Session
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13746 次 |
最近记录: |