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