/ / Има ли C # библиотека, която се държи като разрешения и групи на Active Directory? - c #, разрешения, active-directory, оторизация, потребителски групи

Има ли C # библиотека, която се държи като Permissions and Groups на Active Directory? - c #, разрешения, активна директория, разрешение, потребителски групи

Харесвам начина, по който разрешенията и групите работят в Active Directory, но не искам всъщност да обвържа приложението си с AD.

Има ли там съществуваща библиотекасъдържа същата функционалност, каквато има AD? В частност, възможността за създаване на групи, присвояване на потребители към групи, добавяне на разрешения към групи и преглеждане на разрешенията, прилагани от потребителя или групата?

Отговори:

1 за отговор № 1

Класът ActiveDirectoryMembershipProvider наследява MembershipProvider.

Това означава, че не се налага да свързвате вашето приложение с AD само по себе си, а с модела MembershipProvider.

Ето един пример

//Any of these will work
ActiveDirectoryMembershipProvider provider = new ActiveDirectoryMembershipProvider();
//SqlMembershipProvider provider = new SqlMembershipProvider();
//MyCustomMemebershipProvider provider = new MyCustomMemebershipProvider();

MembershipProvider membershipProvider = provider;

if (membershipProvider.ValidateUser("username", "password"))
{
MembershipUser user = membershipProvider.GetUser("username", true);
}
else
{
//Do something
}

Аз не съм експерт по този модел, но имам някоиопит подкласване членствоПродавач и прилагане на IPrincipal, IIdentity и др.


0 за отговор № 2

Можете да настроите безплатен LDAP сървър, напр. OpenLDAP, и употреба DirectoryServices за достъп до него и произволен брой инструменти да администрирате LDAP директорията. Необходима е конфигурация!

Предимството да се използва стандартна директорияУслугата е в изобилието от средства за администриране и способността да се поддържа произволен брой приложения. Недостатъците са в обучението да се администрира и да се потърси директорията. Има ли някаква конкретна причина, поради която не искате да използвате AD? Ако работите върху Windows, аз силно го препоръчвам в повечето случаи.


0 за отговор № 3

Ако AD е твърде тежък за вас, можете да използвате ADAM, който е лек AD, който можете да конфигурирате с ADSI Edit, предоставен с последния. Тук е добър док и cВъпрос за конфигурация за SO.

Освен това можете да разглеждате ADAM със същия вид .NET API (System.DirectoryServices.AccountManagement например).


0 за отговор № 4

Може да се използва Управителят на Microsoft за AzMan като обвивка за Active directory.

Той съдържа API за програмиране срещу искане на разрешения

и GUI (azman.msc), където можете да дефинирате ролите и правата върху картата и да ги съхранявате в xml-файл.

Тя може да бъде конфигурирана срещу Active Directory.


0 за отговор № 5

Две неща.

Първо:

Ако искате да взаимодействате с директория, която иматеда програмирате в горната част на LDAP API. Доколкото аз undestand ADSI работи на върха на LDAP, но тя не изглежда да е толкова независим от Active Directory. Знам, че Novell, който инициира моно проект редактирайте още независима C # библиотека в горната част на LDAP.

Второ:

Разрешения, имам предвид списъка за контрол на достъпа (ACL)са нестандартна функция. Начинът, по който разрешенията се изпълняват в Active Directory, е различен от начина, по който те се прилагат в Sun e-Directory (специални атрибути). Например в разрешенията на OpenLDAP се имплантира в един вид филтър за достъп.

Мога (надявам се) да съм сгрешил, но никога не съм чувал за библиотека, която дава федерално разрешение в директориите.


0 за отговор № 6

Една библиотека, за която съм чел, е Rhino Security, Изглежда, че се справя с удостоверяването, както и с разрешението за бизнес операции, и вероятно си струва да се погледне. Не съм го реализирал, така че не знам колко добре работи.


0 за отговор № 7

Можете да използвате Authorization Manager (AzMan) за тази част от Windows Server. За да се интегрира с него от .NET, Enterprize Library 5 има типове библиотеки за класове, които можете да използвате.