ASP MVC C#: действительно ли возможно передать динамические значения в атрибут?

Хорошо я очень плохо знаком с C#, и я пытаюсь создать немного веб-сайта с помощью ASP MVC2.

Я хочу создать свой собственный атрибут полномочий. но я должен передать некоторые значения, если это возможно.

Например:

    [CustomAuthorize(GroupID = Method Parameter?]
    public ActionResult DoSomething(int GroupID)
    {
        return View("");
    }

Я хочу авторизовать доступ к странице. но это зависит от значения, переданного контроллеру. Таким образом, авторизация зависит от groupID. Действительно ли это возможно достигнуть этого всегда?.

Заранее спасибо.

6
задан 9 May 2010 в 17:34
поделиться

2 ответа

Используйте поставщик значений:

public class CustomAuthorizeAttribute : FilterAttribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationContext filterContext)
    {
        var result = filterContext.Controller.ValueProvider.GetValue("GroupId"); //groupId should be of type `ValueProviderResult`

        if (result != null)
        {
            int groupId = int.Parse(result.AttemptedValue);

            //Authorize the user using the groupId   
        }
   }

}

Эта статья может вам помочь.

HTH,
Чарльз

4
ответ дан 17 December 2019 в 02:25
поделиться

Вы получите его из Request.Form

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
       //httpContext.Request.Form["groupid"]
        return base.AuthorizeCore(httpContext);
    }
}
2
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: