Хорошо я очень плохо знаком с C#, и я пытаюсь создать немного веб-сайта с помощью ASP MVC2.
Я хочу создать свой собственный атрибут полномочий. но я должен передать некоторые значения, если это возможно.
Например:
[CustomAuthorize(GroupID = Method Parameter?]
public ActionResult DoSomething(int GroupID)
{
return View("");
}
Я хочу авторизовать доступ к странице. но это зависит от значения, переданного контроллеру. Таким образом, авторизация зависит от groupID. Действительно ли это возможно достигнуть этого всегда?.
Заранее спасибо.
Используйте поставщик значений:
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,
Чарльз
Вы получите его из Request.Form
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//httpContext.Request.Form["groupid"]
return base.AuthorizeCore(httpContext);
}
}