您好我的C#
控制器具有自定义过滤器属性。
[SessionExpireFilterAttribute(UserType = UserTypes.Admin)]
我的过滤器就像这样开始:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class SessionExpireFilterAttribute : ActionFilterAttribute
{
public App.Model.UserTypes UserType { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext ctx = HttpContext.Current;
我希望能够发送多个UserTypes
,因此对此控制器的权限不仅仅与一个相关联。
例如,想要设置如下内容:
[SessionExpireFilterAttribute(UserType = UserTypes.Admin || UserTypes.Accounting || UserTypes.Standard)]
这样,如果用户类型为Admin
或Accounting
或Standard
,我可以在我的过滤器中执行我的逻辑并让该过程继续。
有任何线索吗?
答案 0 :(得分:0)
您可以使用数组,如下所示:
public App.Model.UserTypes[] UserTypes { get; set; }
public SessionExpireFilterAttribute(params App.Model.UserType[] values) {
UserTypes = values;
}
然后你可以像这样使用它:
[SessionExpireFilterAttribute(UserTypes.Admin, UserTypes.Accounting, UserTypes.Standard)]
注意:您不必使用params
,也可以执行
[SessionExpireFilterAttribute(new [] {UserTypes.Admin, UserTypes.Accounting, UserTypes.Standard})]