Получение атрибута Active Directory «SecurityDescriptor» в ядре .net на компьютере с LinuxLinux

Ответить
Anonymous
 Получение атрибута Active Directory «SecurityDescriptor» в ядре .net на компьютере с Linux

Сообщение Anonymous »

Я использую следующий основной код C# .net, чтобы получить атрибут ntSecurityDescriptor с сервера Active Directory.
Я использую библиотеку Novell.Directory.Ldap, потому что мне нужен этот код для запуска на машине Linux.

Код: Выделить всё

using (var ldapConnection = new LdapConnection { SecureSocketLayer = false })
{
ldapConnection.Connect(_ldapHost, _ldapPort);
ldapConnection.Bind(_loginDN, _password);

var constraints = new LdapSearchConstraints();
constraints.SetControls(new LdapControl("1.2.840.113556.1.4.801", true
, new byte[] {48, 3, 2, 1, 7}));

ldapConnection.Constraints = constraints;

var searchFilter = "(objectClass=user)";
var searchResults = ldapConnection.Search(
_searchBase,
LdapConnection.ScopeSub,
searchFilter,
null,
false
);
var accessRules = new List();
while (searchResults.HasMore())
{
var nextEntry = searchResults.Next();
var userAttributes = nextEntry.GetAttributeSet();
var acl = userAttributes.GetAttribute("ntSecurityDescriptor");
var byteValue = userAttributes.GetAttribute("nTSecurityDescriptor").ByteValue;
var security = new CommonSecurityDescriptor(true, true, byteValue, 0);

foreach (var acl in security.DiscretionaryAcl)
{
var accessRule = new ActiveDirectoryAccessRule(
((KnownAce)acl).AccessMask,
((KnownAce)acl).SecurityIdentifier.Value,
((QualifiedAce)acl).AceQualifier,
acl.IsInherited,
acl is ObjectAce ? ((ObjectAce)acl).ObjectAceType : Guid.Empty,
acl is ObjectAce ? ((ObjectAce)acl).InheritedObjectAceType : Guid.Empty,
acl is ObjectAce ? ((ObjectAce)acl).ObjectAceFlags : ObjectAceFlags.None,
acl.PropagationFlags
);
accessRules.Add( accessRule );
}
}
}
Проблема в том, что типы System.Security.AccessControl (

Код: Выделить всё

CommonSecurityDescriptor
, KnownAce, QualifiedAce, ObjectAce и т. д.) поддерживаются только в Windows.
Как я могу получить эту информацию в Linux машина?

Подробнее здесь: https://stackoverflow.com/questions/787 ... n-linux-ma
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»