如何根据SQL Server中的用户角色适应WPF应用程序?

时间:2018-10-08 14:22:10

标签: c# entity-framework linq sql-server-2008 user-roles

我正在使用C#和EDMX文件作为我的数据访问层来构建WPF应用程序。

在SQL Server 2008中,我有两个安全角色,分别是AppUsers和AppAdmins。

是的,AppUsers成员无权编辑一个表,将其称为T,只能从中选择数据。 但是,AppAdmins成员也可以在此表T中插入和更新数据。

我正在C#中使用try / catch块在状态栏中报告错误,但是我想根据用户角色从应用程序中关闭完整的模块,而不是等待用户使用我的应用程序并报告错误,从技术上讲不是错误,并且是SQL权限的障碍。

如何获得当前用户角色?

EDMX文件或实体框架文件中是否有一些API可用来获取用户角色?

我可以用LINQ命令得到它吗?

还是应该开发SQL字符串查询并将其直接运行到数据库服务器上?

1 个答案:

答案 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