Feedback

C# - Konvertiert ein Byte Array in ein SID String.

Veröffentlicht von am 3/16/2007
(1 Bewertungen)
Konvertiert ein Byte Array aus dem AD (z.B. objectSid) in ein SID String.

using System.Runtime.InteropServices;
/// <summary>
/// Konvertiert ein Byte Array in ein SID String.
/// </summary>
/// <param name="sid"></param>
/// <returns></returns>
public string ConvertSid(byte[] sid)
{
	string sidString;
	IntPtr sidPtr;
	IntPtr sidStringPtr  = IntPtr.Zero;
	int res;

	sidPtr = Marshal.AllocHGlobal(sid.Length);
	Marshal.Copy(sid, 0, sidPtr, sid.Length);
	res = ConvertSidToStringSid(sidPtr, ref sidStringPtr);
	if (res == 0)
	{
		throw new System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error());
	}
	sidString = Marshal.PtrToStringAuto(sidStringPtr);
	Marshal.FreeHGlobal(sidPtr);
	Marshal.FreeHGlobal(sidStringPtr);
	return sidString;
}

[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern int ConvertSidToStringSid(IntPtr pSID, ref IntPtr pSidString);
Abgelegt unter SID.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!