我希望只允许访问C#网页,只能访问Active Directory组中的成员。有人可以指点我这个方向或协助吗?
提前致谢
答案 0 :(得分:1)
您可以查询AD以查看用户所属的组。
这是一个很好的资源: http://www.codeproject.com/KB/system/everythingInAD.aspx#39
这样的事也应该有效:
using System.DirectoryServices.ActiveDirectory;
using System.DirectoryServices;
public bool IsUserInGroup(string group, string user)
{
string DomainName="";
string ADUsername="";
string ADPassword="";
DirectoryEntry entry=new DirectoryEntry(LDAPConnectionString, ADUsername, ADPassword);
DirectorySearcher dSearch=new DirectorySearcher(entry);
dSearch.Filter="(&(objectClass=user)(userPrincipalName=" + user + ")";
foreach(SearchResult sResultSet in dSearch.FindAll())
{
string strGroupList=GetProperty(sResultSet, "memberOf");
if(!string.IsNullOrEmpty(strGroupList) && strGroupList.IndexOf(group)>-1)
return true;
}
return false;
}
我没有时间检查这个甚至编译,所以我提前为任何错误道歉。 if
中的foreach
可能还不够。也许有一种更有效的方法来进行查询,但这是我能够快速提出的。
答案 1 :(得分:0)
存在多种方法。
当然,您可以检查Page.User.IsInRole(@“domain \ group”),然后重定向,发送401响应,或者如果用户不能访问则抛出异常。