Get Session von HttpActionContext
Ich versuche zu schaffen, eine Berechtigung, die attribute zu konfigurieren, in der jede Aktion von meinem Controller, so das benutzerdefinierte Attribut sollte die sessionId des Benutzers.
Mein code ist so:
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");
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diese
BEARBEITEN
Angesichts der Tatsache, dass man mit MVC 4 und Sie haben nicht
Versuchen Sie es mit
wenn Sie versuchen, Zugriff über ActionFilterAttribute dann OnActionExecting event wird es nicht geben, die Zugänglichkeit des HttpContext-mit System.Web.Http.
Statt, dass, Wenn Sie versuchen, Zugriff mit System.Web.Mvc-es wird Ihnen die aktuelle Sitzung mit onActionExecting Ereignis mit Hilfe von ActionExecutingContext Klasse.