Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Custom Role Provider нужен совет / 13 сообщений из 13, страница 1 из 1
04.12.2013, 21:58
    #38489619
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
Всем доброго времени суток.

Потребовалось сделать аутентификацию и авторизацию в ASP.Net MVC приложении. Исходные данные: приложение интранет, пользователи сами не могут себя добавить, их заводит админ прямо в БД (пользователи СУБД).
Сразу скажу, родной Membership не предлагать, т.к. БД - Oracle, нативный из ODAC - тоже, т.к. БД старой версии.

Аутентификацию буду реализовывать с помощью форм, а в контроллере просто пытаться открыть соединение, используя логин/пароль, введенный пользователем. Соединение открылось - все ок, значит такой пользователь в БД заведен (кстати, такой подход нормальный?).

Сложнее с авторизацией, пока не пойму как ее делать. Есть мысль добавить 2 таблицы: Roles и UsersRoles (связка), помогите ссылками с нормальным переопределенным провайдером, просто в гугле их море, хотелось бы без граблей и ненужных велосипедов.
И вопрос по использованию ролей, если я хочу показывать ссылки пользователю в зависимости от его роли, я должен перед каждым набором ссылок делать switch, перебирать все существующие и роли и в зависимости от роли выводить ссылки? такая логика во View пугает) есть ли способ получше?
...
Рейтинг: 0 / 0
04.12.2013, 22:25
    #38489631
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
...
Рейтинг: 0 / 0
05.12.2013, 11:55
    #38490005
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
МСУ,

За ссылки спасибо, посмотрю, а как быть с показом ссылок пользователю в зависимости от его роли?
...
Рейтинг: 0 / 0
05.12.2013, 12:10
    #38490037
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
web.sitemap можно использовать, там у каждого siteMapNode перечисляется роль для доступа

Код: xml
1.
2.
3.
4.
5.
6.
...
    <siteMapNode url="~/Client" title="Клиенты" roles="sysadmin,admin,operator">
      <siteMapNode url="~/Client/Index" title="Поиск" roles="sysadmin,admin,operator">
        <siteMapNode url="~/Client/Details" title="Информация" roles="sysadmin,admin,operator" />
	<siteMapNode url="~/Client/Edit" title="Настройки" roles="sysadmin,admin" />
...
...
Рейтинг: 0 / 0
05.12.2013, 14:47
    #38490370
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
Nicky_NМСУ, За ссылки спасибо, посмотрю, а как быть с показом ссылок пользователю в зависимости от его роли?
System.Web.Security.Roles.RoleExists()
...
Рейтинг: 0 / 0
10.12.2013, 17:12
    #38495898
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
МСУNicky_NМСУ, За ссылки спасибо, посмотрю, а как быть с показом ссылок пользователю в зависимости от его роли?
System.Web.Security.Roles.RoleExists()
можно поподробнее?
...
Рейтинг: 0 / 0
10.12.2013, 20:36
    #38496191
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
Nicky_N, гугл.
...
Рейтинг: 0 / 0
10.12.2013, 21:12
    #38496226
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
МСУ,


MSDN:Roles.RoleExists Method - Gets a value indicating whether the specified role name already exists in the role data source.

какое это отношение имеет к показу пользователю ссылок в зависимости от его роли?
...
Рейтинг: 0 / 0
10.12.2013, 21:16
    #38496229
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
Nicky_NМСУ,


MSDN:Roles.RoleExists Method - Gets a value indicating whether the specified role name already exists in the role data source.

какое это отношение имеет к показу пользователю ссылок в зависимости от его роли?

Самое прямое. Если RoleExists(роль) == true, значит нужно пользователю показать ссылку.
...
Рейтинг: 0 / 0
10.12.2013, 21:46
    #38496244
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
МСУ,

Gets a value indicating whether the specified role name already exists in the role data source
т.е. он проверяет есть ли роль в источнике, а не наличие роли у пользователя?

может быть корректнее HttpContext.Current.User.IsInRole("role")?
...
Рейтинг: 0 / 0
11.12.2013, 10:19
    #38496534
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
Да, речь про IsInRole. Тот случай, когда думаешь одно, а пишешь другое - сорри.
...
Рейтинг: 0 / 0
11.12.2013, 11:53
    #38496711
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
Я так понял есть 2 подхода:

1. Для контроллеров и методов использовать атрибуты [Authorize(Roles = "SuperAdmin")] и во View проверять HttpContext.Current.User.IsInRole("role") при показе ссылок пользователю.

2.
Код: html
1.
2.
3.
4.
<siteMapNode url="~/Client" title="Клиенты" roles="sysadmin,admin,operator">
      <siteMapNode url="~/Client/Index" title="Поиск" roles="sysadmin,admin,operator">
        <siteMapNode url="~/Client/Details" title="Информация" roles="sysadmin,admin,operator" />
	<siteMapNode url="~/Client/Edit" title="Настройки" roles="sysadmin,admin" />


имхо, 2 как-то поприятнее выглядит, при измении ролей вся информация в одном месте, если использовать 1 способ - надо пройтись по всем контроллерам и изменить атрибуты + пройтись по всем View и изменить опции показа.
...
Рейтинг: 0 / 0
11.12.2013, 12:16
    #38496756
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Role Provider нужен совет
Nicky_NЯ так понял есть 2 подхода
Ну вариант с атрибутом контроллера - это и не вариант вовсе, т.к. пользователю просто будет запрещен доступ. Вариант с анализом ролей - это то, что нужно. И не важно где анализировать и перечислять, в siteMapNode или разором в представлении.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Custom Role Provider нужен совет / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]