public static Dictionary <string, string> GetLockoutPolicy() { Dictionary <string, string> results = new Dictionary <string, string>(); try { USER_MODALS_INFO_3 objUserModalsInfo3 = new USER_MODALS_INFO_3(); IntPtr bufPtr; uint lngReturn = NetUserModalsGet(@"\\" + Environment.MachineName, 3, out bufPtr); if (lngReturn == 0) { objUserModalsInfo3 = (USER_MODALS_INFO_3)Marshal.PtrToStructure(bufPtr, typeof(USER_MODALS_INFO_3)); } results.Add("Lockout duration", String.Format("{0}", objUserModalsInfo3.usrmod3_lockout_duration)); results.Add("Lockout Obversation Window", String.Format("{0}", objUserModalsInfo3.usrmod3_lockout_observation_window)); results.Add("Lockout Threshold", String.Format("{0}", objUserModalsInfo3.usrmod3_lockout_threshold)); //NetApiBufferFree(bufPtr); bufPtr = IntPtr.Zero; } catch (Exception ex) { PrintUtils.Debug(ex.StackTrace); } return(results); }
public static List <String> getLockoutPolicy() { List <String> retList = new List <String>(); USER_MODALS_INFO_0 info0 = new USER_MODALS_INFO_0(); USER_MODALS_INFO_3 info3 = new USER_MODALS_INFO_3(); IntPtr ptr; uint code = NetUserModalsGet(null, 0, out ptr); if (code == 0) { info0 = (USER_MODALS_INFO_0)Marshal.PtrToStructure(ptr, typeof(USER_MODALS_INFO_0)); retList.Add(String.Format("force_logoff={0:X8}", info0.usrmod0_force_logoff)); NetApiBufferFree(ptr); ptr = IntPtr.Zero; } code = NetUserModalsGet(null, 3, out ptr); if (code == 0) { info3 = (USER_MODALS_INFO_3)Marshal.PtrToStructure(ptr, typeof(USER_MODALS_INFO_3)); retList.Add(String.Format("lockout_duration={0:X8}", info3.usrmod3_lockout_duration)); retList.Add(String.Format("lockout_observation_window={0:X8}", info3.usrmod3_lockout_observation_window)); retList.Add(String.Format("lockout_threshold={0:X8}", info3.usrmod3_lockout_threshold)); NetApiBufferFree(ptr); ptr = IntPtr.Zero; } return(retList); }
public static void GetLockoutPolicy() { // Outputed pointer to USER_MODALS_INFO_3 structure containing data IntPtr bufferPtr; // Call NetUserModalsGet for local machine (null) and requesting lockout parameters (level = 3) uint ret = WinAPI.NetUserModalsGet(null, 3, out bufferPtr); // Return value is 0 on success if (ret == 0) { // Convert pointer to structure to accessable structure USER_MODALS_INFO_3 userModalsInfo3 = Marshal.PtrToStructure <USER_MODALS_INFO_3>(bufferPtr); // Time values are stored in seconds, converted to minutes Settings.AccountPolicies.LockoutPolicy.AccountLockoutDuration = userModalsInfo3.lockout_duration / 60; Settings.AccountPolicies.LockoutPolicy.ResetLockoutCounterAfter = userModalsInfo3.lockout_observation_window / 60; Settings.AccountPolicies.LockoutPolicy.AccountLockoutThreshold = userModalsInfo3.lockout_threshold; } }
public static List<String> getLockoutPolicy() { List<String> retList = new List<String>(); USER_MODALS_INFO_0 info0 = new USER_MODALS_INFO_0(); USER_MODALS_INFO_3 info3 = new USER_MODALS_INFO_3(); IntPtr ptr; uint code = NetUserModalsGet(null, 0, out ptr); if (code == 0) { info0 = (USER_MODALS_INFO_0)Marshal.PtrToStructure(ptr, typeof(USER_MODALS_INFO_0)); retList.Add(String.Format("force_logoff={0:X8}", info0.usrmod0_force_logoff)); NetApiBufferFree(ptr); ptr = IntPtr.Zero; } code = NetUserModalsGet(null, 3, out ptr); if (code == 0) { info3 = (USER_MODALS_INFO_3)Marshal.PtrToStructure(ptr, typeof(USER_MODALS_INFO_3)); retList.Add(String.Format("lockout_duration={0:X8}", info3.usrmod3_lockout_duration)); retList.Add(String.Format("lockout_observation_window={0:X8}", info3.usrmod3_lockout_observation_window)); retList.Add(String.Format("lockout_threshold={0:X8}", info3.usrmod3_lockout_threshold)); NetApiBufferFree(ptr); ptr = IntPtr.Zero; } return retList; }