附加属性时调用函数?

时间:2017-12-20 23:15:15

标签: c# asp.net custom-attributes

我正在ASP.net中构建一个网站,我创建了一个属性,其中包含要完成的函数的要求。

现在我必须在函数顶部有一些代码来检查需求(如下所示),并且由于它在每个函数中都是相同的,我想知道是否有办法自动调用UserAction.Rule.IsValid函数。我还需要能够传递MethodBase.GetCurrentMethod(),并返回一个enum / int。

现在是我的代码。

  [UserAction.Rule(UserAction.Rule.RestrictionFailRequirements.RequiresOneRestriction, new int[] { 2, 11 })]
        public static int Login(string loginName, string password)
        {

            if (!UserAction.Rule.IsValid(MethodBase.GetCurrentMethod()))
                return 4;//User is banned

          //Login stuff.....
        }

编辑:我设法找到关于这个主题的更多信息,之后我从属性派生了UserAction.Rule,而不是MVC库中的AuthorizeAttribute。

现在我已将其更改为AuthorizeAttribute,它似乎没有调用OnAuthorization。我是否需要在我尝试使用该属性的函数中调用它?

所以我的代码现在看起来像这样,在UserAction.Authorize中我覆盖了OnAuthorization。

        [Authorize]
        [UserAction.Authorize(UserAction.Authorize.RestrictionFailRequirements.RequiresOneRestriction, new int[] { 1, 11 })]
        public static int RegisterUser(string regID, string username, string email, string password, string firstname, string lastname)
        {
            //Login stuff.....
        }

0 个答案:

没有答案