Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Стандартный шаблон ASP.NET MVC приложения. Добавляем роли Админ и Клиент, соответствующих юзеров. Добавляем контроллер Администрирование, делаем его Authorize(Roles = "Admin"), добавляем вью, добавляем пункт меню в мастерпейдж. Как наиболее правильно сделать чтобы юзеру Клиент пункт меню Администрирование вообще не был виден? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 13:04 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
zvb73, Как то так Код: html 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 14:27 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
я обычно через расширение public static MvcHtmlString If(this MvcHtmlString value, bool evaluation) { return evaluation ? value : MvcHtmlString.Empty; } а потом вызов @Html.ActionLink("DoSome", "Action", "Controller").If(User.IsInRole("role")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 14:58 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
zvb73Стандартный шаблон ASP.NET MVC приложения. Добавляем роли Админ и Клиент, соответствующих юзеров. Добавляем контроллер Администрирование, делаем его Authorize(Roles = "Admin"), добавляем вью, добавляем пункт меню в мастерпейдж. Как наиболее правильно сделать чтобы юзеру Клиент пункт меню Администрирование вообще не был виден? А зачем этот пункт("Администрирование ") вообще помещать в основное меню ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 16:13 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
DezaА зачем этот пункт("Администрирование ") вообще помещать в основное меню Это я для примера упростил, на самом деле будет много типов юзеров, у которых есть непересекающиеся задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 16:54 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Парамонzvb73, Как то так Код: html 1. 2. 3. 4. 5. 6. 7. Меню в мастерпейдже Site.Master. Как из него до модели дотянуться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 17:02 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
zvb73Меню в мастерпейдже Site.Master. Как из него до модели дотянуться? Тут разные варианты: 1. Делать модель для мастерпейджа (MasterViewModel) 2. @Html.Action("Menu") 3. ViewBag, ViewData и общий контроллер (BaseController) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 17:34 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Автор топика используеш мембершипы тогда в помощь тебе User.IsInRole? или самописная авторизация через IIdentity и IPrincipal снова в помощь User.IsInRole со своей реализаций. ну если что то другое, то через выше указаные телодвижения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 18:09 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Да, пока что мембершип. Попробую и твой вариант, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 18:18 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
zvb73DezaА зачем этот пункт("Администрирование ") вообще помещать в основное меню Это я для примера упростил, на самом деле будет много типов юзеров, у которых есть непересекающиеся задачи Формируй меню в контролере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 18:24 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
zvb73DezaА зачем этот пункт("Администрирование ") вообще помещать в основное меню Это я для примера упростил, на самом деле будет много типов юзеров, у которых есть непересекающиеся задачи формируй меню в контролере, зачем дополнительную логику кидать на вью, она предназначена для визуализации, а не для логики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 18:27 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
ну да. заводишь контроллер MenuController с PartialView, в котором и будет юзаться нужная модель. а в мастер-паге выводим просто через @Html.Action(... понаделаешь логики во вьюхе иначе, потом бардак будет... а так в контроллере каким-то удобным образом подготовишь модель меню, списком пунктов каким-то с привязкой к экшенам и контроллерам, например, и вуаля... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 09:59 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
День добрый, Предстоит решить туже саму задачу что у товарища создавшего топик. Делал пробный заход пол года назад и у меня был следующи результат. Меню About мог видеть только Агент когда в контролере было указано вот это. <Authorize(Roles:="Agent")> Function About() As ActionResult Return View() End Function Пробное приложение было утеряно. Сейчас пробую повторить тоже самое но уже ни чего не получается. Меню видят все. Когда нажимает пользователь который как Админ просит ввести Логин и Пароль. У меня такое ощущение что я что-то изменил в IIS. У кого нибудь есть идеи как у меня получилось скрывать меню для все кто не Агент указав в контроле <Authorize(Roles:="Agent")> ? PS. У меня сейчас такое ощущение как-будто я мне это причудилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2015, 14:04 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
IIS тут не причем, не он управляет ролями. читать о IIdentity\IPrincipal и как работает Authorize. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2015, 17:08 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Взаимосвязь между IIdentity\IPrincipal и скрытием меню понимаю. Сейчас не понимаю как реализовать. Как писал выше пол года назад делал тестовый проект где все работало... и который не могу просто отыскать на TFS. хм ... неужели это делал через Области... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2015, 20:43 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
1 С Областями получилось, но это реально что-то не то что ожидал ... должно как то быть проще чтоли 2 В интернетах предлагают использовать условие во вьюхах вот такое (PS которое тоже кажется маразмом) <li>@Html.ActionLink("Home", "Index", "Home")</li> @If User.IsInRole("Admin") Then @<li>@Html.ActionLink("About", "About", "Home")</li> End If @If User.IsInRole("Agent") Then @<li>@Html.ActionLink("Contact", "Contact", "Home")</li> End If PS. Если такое использовать теряется всякий смысл от указания вот этого <Authorize(Roles:="Agent")> в контроле 3 Ну точно помню что пол года назад когда экспеременировал с ролями указывал только вот это <Authorize(Roles:="Agent")> в контроле и не более ... для того чтобы спрятать элемент меню Плизз помогите понять в как такое сделать... это вообще возможно или я был в параллельной вселенной? ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2015, 23:26 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Артем GС Областями получилось, но это реально что-то не то что ожидал ... должно как то быть проще чтоли как области влияют на роли у тебя? Артем GВ интернетах предлагают использовать условие во вьюхах вот такое (PS которое тоже кажется маразмом) ... PS. Если такое использовать теряется всякий смысл от указания вот этого <Authorize(Roles:="Agent")> в контроле да вполне нормально, можешь сделать хелпер/вьюшку на построение роли в зависимости от роли. а указание в контролере чтоб по прямому урл не зашли Артем GНу точно помню что пол года назад когда экспеременировал с ролями указывал только вот это <Authorize(Roles:="Agent")> в контроле и не более ... для того чтобы спрятать элемент меню из коробки асп мвц такого нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 09:38 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
А это не слишком накладно - постоянно проверять роль пользователя? И как сделать, чтобы изменение ролей вступало в силу не при перелогине, а сразу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 10:34 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueА это не слишком накладно - постоянно проверять роль пользователя? а что накладно пройтись по коллекции? если профилировщик скажет что это узкое место я буду думать что делать но раньше времени это экономия спичек MonochromatiqueИ как сделать, чтобы изменение ролей вступало в силу не при перелогине, а сразу? насколько я помню роли грузятся в контект запроса, та что сразу, вот сменить пароль юзера принудительно из админской учетки вот эт гемор без предварительного изменения как хранится кука авторизации в асп нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 11:41 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
[quot handmadeFromRu]Артем GС Областями получилось, но это реально что-то не то что ожидал ... должно как то быть проще чтоли как области влияют на роли у тебя? вот тут пример от товарища http://andrey.moveax.ru/post/mvc3-in-depth-basics-08-areas как я понимаю если ролей дофига под каждую роль условно нужно делать область )) Вобщем муторно и не гибко как то (( но пример рабочий. PS. приду домой пошерю одну из идей ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 15:00 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Артем G, эм а где в его примере хоть что то про роли?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 15:21 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Артем GВ интернетах предлагают использовать условие во вьюхах вот такое (PS которое тоже кажется маразмом) ... PS. Если такое использовать теряется всякий смысл от указания вот этого <Authorize(Roles:="Agent")> в контроле да вполне нормально, можешь сделать хелпер/вьюшку на построение роли в зависимости от роли. а указание в контролере чтоб по прямому урл не зашли А еще вопросец. хелпер это ты имеешь ввиду расширение для html? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 15:24 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
Артем Gкак я понимаю если ролей дофига под каждую роль условно нужно делать область )) Мда, можно себе представить количество областей для каждой роли. И что потом с ними делать? Вообще-то области предназначены для решения несколько других задач - логическая разбивка апликации. Я бы не стал создавать области для ролей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 15:30 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu MonochromatiqueИ как сделать, чтобы изменение ролей вступало в силу не при перелогине, а сразу? насколько я помню роли грузятся в контект запроса, та что сразу, вот сменить пароль юзера принудительно из админской учетки вот эт гемор без предварительного изменения как хранится кука авторизации в асп нет Я отнимаю у сотра роль, но он продолжает лазить по закрытым разделам. Только после перелогина - действия имеют эффект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 15:38 |
|
||
|
ASP.NET MVC - как скрыть пункты меню в зависимости от роли?
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueИ как сделать, чтобы изменение ролей вступало в силу не при перелогине, а сразу? CookieAuthenticationProvider.OnValidateIdentity Property ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2015, 15:54 |
|
||
|
|

start [/forum/topic.php?fid=18&tid=1356396]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 306ms |

| 0 / 0 |
