如何让C#If-Else逻辑排除广告安全组的成员?
我有以下代码来获取当前用户的广告安全组如何让C#If-Else逻辑排除广告安全组的成员?,c#,asp.net,webforms,C#,Asp.net,Webforms,我有以下代码来获取当前用户的广告安全组 PrincipalContext ctx = new PrincipalContext(ContextType.Domain); PrincipalSearchResult<Principal> groups = UserPrincipal.FindByIdentity(ctx, User.Identity.Name).GetAuthorizationGroups(); IEnumerable
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
PrincipalSearchResult<Principal> groups = UserPrincipal.FindByIdentity(ctx, User.Identity.Name).GetAuthorizationGroups();
IEnumerable<string> groupNames = groups.Select(x => x.Name);
我还尝试了以下方法,但它也不起作用-而是让每个人都可以查看页面:
if (groupNames.Contains("Admins") || groupNames.Contains("Mgrs"))
{
return;
}
else
{
Response.Redirect("~/AccessDenied.aspx");
}
我的语法或逻辑是否不正确?我需要“Admins”或“Mgrs”安全组中的所有用户都能够访问该页面,并且所有其他用户都应重定向到AccessDenied.aspx
这是一个使用visual studio 2019的asp.net webforms应用程序。我不知道为什么,但它现在正在工作。我用的是相同的代码,没有变化
if (groupNames.Contains("Admins") || groupNames.Contains("Mgrs"))
{
return;
}
else
{
Response.Redirect("~/AccessDenied.aspx");
}
语法和布尔逻辑似乎是正确的。您是否使用调试器确认
groupNames
确实包含您认为它包含的内容?搜索“管理员”而不是“管理员”如何。尝试查找您正在搜索的确切字符串。哦,注意语言规范。在德国环境中,您将获得“Administratoren”而不是“Administrators”
if (groupNames.Contains("Admins") || groupNames.Contains("Mgrs"))
{
return;
}
else
{
Response.Redirect("~/AccessDenied.aspx");
}