public static Boolean UserGet(string username, string domain, ref structenums.USER_INFO_4 userinfo4)
{
IntPtr bufPtr;
int lngReturn = SafeNativeMethods.NetUserGetInfo((String.IsNullOrEmpty(domain)) ? null : domain, username, 4, out bufPtr);
if (lngReturn == 0)
{
try
{
userinfo4 = (structenums.USER_INFO_4)Marshal.PtrToStructure(bufPtr, typeof(structenums.USER_INFO_4));
}
catch (Exception ex)
{
LibraryLogging.Error("UserGet Marshal.PtrToStructure error:{0}", ex.ToString());
return false;
}
}
else if (lngReturn == 2221)
{
// user does not exist
}
else
{
string errorMessage = new Win32Exception(Marshal.GetLastWin32Error()).ToString();
LibraryLogging.Error("NetUserGetInfo error:{0} {1}", lngReturn, errorMessage);
}
SafeNativeMethods.NetApiBufferFree(bufPtr);
if (lngReturn == 0)
{
return true;
}
return false;
}