Как адаптировать приложение WPF в соответствии с ролью пользователя в SQL Server? - PullRequest
0 голосов
/ 08 октября 2018

Я создаю приложение WPF с C # и файлом EDMX в качестве слоя доступа к данным.

У меня есть две роли безопасности в SQL Server 2008, AppUsers и AppAdmins.

Да, члены AppUsersне имеет прав на редактирование одной таблицы, назовем ее T, только можем выбирать данные из нее.Однако члены AppAdmins могут также вставлять и обновлять данные в эту таблицу T.

Я использую блок try / catch в C # для сообщения об ошибках в строке состояния, но я хочу отключить полные модули из моего приложения в соответствии с ролью пользователя, вместо того, чтобы ждать, пока пользователь использует мое приложение, исообщить об ошибке, которая технически не является ошибкой и является препятствием для разрешения SQL.

Как я могу получить текущую роль пользователя?

Есть ли какой-нибудь API внутри файла EDMX или файлов Entity Framework, которые я могу использоватьполучить роль пользователя?

Можно ли получить ее с помощью команды LINQ?

Или мне следует разработать запрос строки SQL и запустить его непосредственно на сервере базы данных?

1 Ответ

0 голосов
/ 08 октября 2018

Да, вы должны написать запрос SQL для получения членства в ролях.EF не сделает это для вас.

Что-то вроде:

select name RoleName, is_member(name) IsUserInRole
from sys.database_principals
where type = 'R'

или

select is_member('AppUsers') IsAppUser, is_member('AppAdmins') IsAppAdmin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...