Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420

Ограничить доступ для пользователей

17.12.2013, 11:45. Показов 3999. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня есть стандартное представление Category
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@model IEnumerable<WareHouse.Net.Models.Category>
 
@{
    ViewBag.Title = "Index";
}
 
<h3>Категории</h3>
 
<table>
    <tr>
        <th>
            @Html.ActionLink(@Html.DisplayNameFor(model => model.Name).ToString(), "Index",
            new
            {
                sortBy = "Name",
                orderByAsc = ViewBag.OrderByAsc,
                pageNumber = ViewBag.PageNumber,
                pageSize = ViewBag.PageSize
            })
        </th>
        <th>
            @Html.ActionLink(@Html.DisplayNameFor(model => model.Description).ToString(), "Index",
            new
            {
                sortBy = "Description",
                orderByAsc = ViewBag.OrderByAsc,
                pageNumber = ViewBag.PageNumber,
                pageSize = ViewBag.PageSize
            })
        </th>
        <th>
            @Html.ActionLink(@Html.DisplayNameFor(model => model.ProductsCount).ToString(), "Index",
            new
            {
                sortBy = "ProductsCount",
                orderByAsc = ViewBag.OrderByAsc,
                pageNumber = ViewBag.PageNumber,
                pageSize = ViewBag.PageSize
            })
        </th>
           <th>Действия</th>
 
    </tr>
 
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.ActionLink(@Html.DisplayFor(modelItem => item.Name).ToString(),
                 "Details", new { id = item.Id })
            </td>
 
            <td>
                @Html.DisplayFor(modelItem => item.Description)
            </td>
 
            <td>
                @Html.DisplayFor(modelItem => item.ProductsCount)
            </td>
 
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id }, new { onclick = "return confirm('Удалить ?');" })
            </td>
        </tr>
    }
 
</table>
@Html.Partial("_PaginationPartial")
и модель юзера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public class Account
    {
        [Required]
        [Display(Name = "Имя пользователя")]
        public string UserName { get; set; }
 
        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Пароль")]
        public string Password { get; set; }
 
        [Display(Name = "Права пользователя")]
        public int Role { get; set; }
 
    }
Мне нужно выводить столбец действия только для администратора. Как это можно сделать?
Можно ли передавать User.Role через ViewBag? Точнее насколько это неправильно и некрасиво?

Добавлено через 4 часа 22 минуты
Мне нужно выводить столбец "Действия" только для администратора.
Неужели никто не сталкивался с таким? Может мне создать две отдельные странички, Index и IndexForAuthorized?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.12.2013, 11:45
Ответы с готовыми решениями:

Необходимо для пользователей ракрыть доступ к некотым функция на сайте
Здравствуйте! При помощи чего реализуется разделение прав доступа. Необходимо для пользователей ракрыть доступ к некотым функция на...

Как ограничить доступ к серверу?
Как ограничить доступ к серверу !! Не через настройки IIS. Пр: чтоб на сервере более 50 тел не могло находиться.

Доступ нескольких пользователей - блокировка.
Есть база, к которой сделан ASP сайт. Дело в том, что основная таблица этой базы находится на другом компе. Там люди работают с БД. А я...

7
97 / 90 / 18
Регистрация: 09.06.2012
Сообщений: 215
17.12.2013, 13:50
C#
1
2
3
4
5
6
7
@if (User.IsInRole("Admins") || User.IsInRole("moderators"))
        {
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id }, new { onclick = "return confirm('Удалить ?');" })
            </td>
        }
1
 Аватар для lifeact
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
18.12.2013, 10:13
ну и в контролере:

C#
1
 [Authorize(Roles = Constants.ROLE_ADMIN)]
0
97 / 90 / 18
Регистрация: 09.06.2012
Сообщений: 215
18.12.2013, 13:21
Цитата Сообщение от lifeact Посмотреть сообщение
ну и в контролере:

C#
1
 [Authorize(Roles = Constants.ROLE_ADMIN)]
Тогда вьюха не будет доступна пользователям/анонимам.
1
 Аватар для lifeact
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
18.12.2013, 13:24
Цитата Сообщение от iptables Посмотреть сообщение
Тогда вьюха не будет доступна пользователям/анонимам.
так этого вроде и не нужно:

Мне нужно выводить столбец действия только для администратора

топикстартер пометит этим свойством тот экшин, который должен выполнять только админ
0
97 / 90 / 18
Регистрация: 09.06.2012
Сообщений: 215
18.12.2013, 13:36
Аа да, до кучи поставить на методы Edit и Delete. Уху.
0
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
18.12.2013, 20:15  [ТС]
iptables, как я понимаю в вашем варианте роли записаны в enum?
lifeact, в том и проблема была, что экшн выводит все данные сразу, а разбор на столбцы происходит во вьюхе.

Цитата Сообщение от iptables Посмотреть сообщение
Аа да, до кучи поставить на методы Edit и Delete. Уху.
это сарказм? а то у меня ак и сделано...
0
180 / 58 / 7
Регистрация: 28.08.2012
Сообщений: 363
18.12.2013, 20:22
ai-zer, можете тут посмотреть на примере создания разных меню для различных ролей: http://metanit.com/sharp/helpdeskmvc/7.1.php

Добавлено через 56 секунд
Цитата Сообщение от ai-zer Посмотреть сообщение
это сарказм? а то у меня ак и сделано...
если у вас один и тот же атрибут применяется ко всем методам, то лучше уж его тогда сразу для всего контроллера объявить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2013, 20:22
Помогаю со студенческими работами здесь

Ограничить доступ к скрытым файлам для других пользователей
добрый день! У меня windows server 2003, на диске d есть скрытые файлы(база данных 1c) к ним программа обращаеться и закрыть доступ...

D-link DNS 320l ограничить доступ к определенным папкам для определенных пользователей
Доброго времени суток! На сетевом хранилище настроил FTP. Сотрудники в компании заходят на устройство через добавленный сетевой диск....

Ограничить доступ пользователей к определенной странице
Добрый день! Прошу помощи) Есть в БД таблица пользователей, таблица разделов. У каждого пользователя есть соответствие с разделами....

Ограничить доступ к системным дискам пользователей (\\user\C$)
Имеется сервер Windows Server2012 R2, так же имеются компьютеры пользователей входящие в состав домена. С сервера я могу получить доступ к...

Как ограничить пользователей имеющих доступ к странице
Здравствуйте, интересует такой вопрос Есть страница загрузки товара к примеру вот /tovar142 142 - это id товара


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru