我有三个表“应用程序”、"UserPermissions“和"ADPermissions”。
“应用程序”表包含应用程序列表。UserPermissions表定义了允许哪个用户管理特定的应用程序。类似地,"ADPermissions“表定义了哪个AD组具有管理应用程序的权限。
当用户登录到管理应用程序(网站)时,我必须根据他的别名和他所属的所有AD组显示他可以访问的所有应用程序。我试图像下面这样编写一个Linq查询,但这给了我重复的结果。另外,我还有几个问题。
//List of groups from AD
var groups = (from g in UserPrincipal.Current.GetGroups()
select g.Name).ToArray<String>();
IdentityContext context = new IdentityContext();
var apps =
(from a in context.Applications
join up in context.UserPermissions on a.Id equals up.ClientId into appUsers
from up in appUsers.DefaultIfEmpty()
join gp in context.ADPermissions on a.Id equals gp.ClientId into appGroups
from gp in appGroups.DefaultIfEmpty()
select new
{
Id = a.Id,
ClientId = a.ClientId,
DisplayName = a.ClientName,
Enabled = a.Enabled,
ClientUri = a.ClientUri,
UserPermissions = a.UserPermissions,
GroupPermissions = a.ADPermissions
}).ToList().Distinct();请帮帮忙。
发布于 2015-02-28 00:14:43
您可以使用组而不是不同的,click here to see an exapmle。
https://stackoverflow.com/questions/28775277
复制相似问题