Я создаю свой выигранный атрибут авторизации.Это прекрасно работает в контроллере.Как я могу использовать его в представлении.
Пример: у меня есть ссылка для управления пользователями. Если у вас нет доступа к этой странице, я не хочу показывать ссылку.
Вот мой атрибут авторизации.
public class UserAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext.Session["UserID"] == null)
{
return false;
}
IIssUserRepository repUser = new IssUserRepository(EntityFactory.GetEntity());
IssUser usr = repUser.GetUserByID(Convert.ToInt32(httpContext.Session["UserID"]));
return usr.CanManageUser;
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (filterContext.Result is HttpUnauthorizedResult)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary {
{ "clubShortName", filterContext.RouteData.Values[ "clubShortName" ] },
{ "area",""},
{ "controller", "Account" },
{ "action", "Unauthorized" }
});
}
}
}
Вот как я использую его в контроллере:
[UserAuthorize]
public class UserController : Controller
Мне нужно использовать это в представлении.Но как
<li class="CssMenui">Product</li>
<%if (......... UserAuthorize .......) %>
<li class="CssMenui">User Management</li>
<li class="CssMenui">Other</li>