Active Directory组和C#网页配置

时间:2010-08-20 21:56:25

标签: c# asp.net active-directory

我希望只允许访问C#网页,只能访问Active Directory组中的成员。有人可以指点我这个方向或协助吗?

提前致谢

2 个答案:

答案 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响应,或者如果用户不能访问则抛出异常。

声明地说,你可以control permissions in your web.config