Группа Active Directory и настройка веб-страницы C # - PullRequest
0 голосов
/ 21 августа 2010

Я хочу разрешить доступ к веб-странице C # только членам группы Active Directory.Может кто-нибудь, пожалуйста, указать мне в этом направлении или помочь в любом случае?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 21 августа 2010

Вы можете запросить 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 может быть недостаточно.Также может быть более эффективный способ выполнить запрос, но это было то, что я мог придумать быстро.

0 голосов
/ 21 августа 2010

Существует несколько подходов к этому.

Обязательно, вы можете проверить Page.User.IsInRole (@ "домен \ группа") и перенаправить, отправить ответ 401 или сгенерировать исключение, если у пользователя нет доступа.

Декларативно, вы можете контролировать разрешения в вашем web.config :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...