我正在使用C#和EDMX文件作为我的数据访问层来构建WPF应用程序。
在SQL Server 2008中,我有两个安全角色,分别是AppUsers和AppAdmins。
是的,AppUsers成员无权编辑一个表,将其称为T,只能从中选择数据。 但是,AppAdmins成员也可以在此表T中插入和更新数据。
我正在C#中使用try / catch块在状态栏中报告错误,但是我想根据用户角色从应用程序中关闭完整的模块,而不是等待用户使用我的应用程序并报告错误,从技术上讲不是错误,并且是SQL权限的障碍。
如何获得当前用户角色?
EDMX文件或实体框架文件中是否有一些API可用来获取用户角色?
我可以用LINQ命令得到它吗?
还是应该开发SQL字符串查询并将其直接运行到数据库服务器上?
答案 0 :(得分:1)
是的,您应该编写一个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