Esempio n. 1
0
 internal static extern NtStatus LsaLookupNames2(
     SafeLsaHandle PolicyHandle,
     LsaLookupNameOptionFlags Flags,
     int Count,
     UnicodeStringIn[] Names,
     out SafeLsaMemoryBuffer ReferencedDomains,
     out SafeLsaMemoryBuffer Sids // PLSA_TRANSLATED_SID
     );
 /// <summary>
 /// Lookup names from the LSA policy.
 /// </summary>
 /// <param name="names">The names to lookup.</param>
 /// <param name="flags">Flags for the lookup.</param>
 /// <returns>The list of SID names.</returns>
 public IReadOnlyList <SidName> LookupNames(IEnumerable <string> names, LsaLookupNameOptionFlags flags)
 {
     return(LookupNames(names, flags, true).Result);
 }
 /// <summary>
 /// Lookup names from the LSA policy.
 /// </summary>
 /// <param name="names">The names to lookup.</param>
 /// <param name="flags">Flags for the lookup.</param>
 /// <param name="throw_on_error">True to throw on error.</param>
 /// <returns>The list of SID names.</returns>
 public NtResult <IReadOnlyList <SidName> > LookupNames(IEnumerable <string> names, LsaLookupNameOptionFlags flags, bool throw_on_error)
 {
     UnicodeStringIn[] name_arr = names.Select(n => new UnicodeStringIn(n)).ToArray();
     return(SecurityNativeMethods.LsaLookupNames2(Handle, flags, name_arr.Length, name_arr,
                                                  out SafeLsaMemoryBuffer domains, out SafeLsaMemoryBuffer sids).CreateResult(throw_on_error,
                                                                                                                              () => GetSidNameSids(names.ToArray(), domains, sids)));
 }