私は、このカスタム属性がユーザーからsessionIdを取得するように、自分のコントローラの各アクションで構成するアクセス許可属性を作成しようとしています。HttpActionContextからセッションを取得する
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");
}
}
MVC4を使用しているため、ActionExecutingContextでオーバーライドされません。 – MuriloKunze
Ok。私は、actionContextにあなたがセッションにアクセスできるようにするプロパティHttpContextを持たないと仮定します。 – Mihai
ええ、それはありません。 – MuriloKunze