/// <summary> /// Get User Access, returns user access level and maximum User Ids allowed on BMC /// </summary> private GetUserAccessResponse GetUserAccess(byte userId, byte channel) { GetUserAccessResponse UserAccessResponse = (GetUserAccessResponse)this.IpmiSendReceive( new GetUserAccessRequest(channel, userId), typeof(GetUserAccessResponse)); return(UserAccessResponse); }
/// <summary> /// Get Users. Returns dictionary of User Ids and corresponding User names /// </summary> public virtual Dictionary <int, string> GetUsers() { // create return object Dictionary <int, string> results = new Dictionary <int, string>(); // set the default maximum users int maxUsers = 15; GetUserAccessResponse userAccess = GetUserAccess(defaultUser, defaultChannel); if (userAccess.CompletionCode == 0) { // get maximum user Ids allowed on BMC maxUsers = Convert.ToInt32(userAccess.MaxUsers); } else { // Surpress IpmiResponseException. Most bmc types will not throw exceptions // HP iLO firmware 1.87, which throws exceptions as the does not implement userId's in accordance // with the ipmi specification. } // loop through all User Id slots on BMC // start for loop at defaultUser(1) // Ipmi userId 1 is always null, except on HP firmware 1.87 for (int i = defaultUser; i <= maxUsers; i++) { byte userByte = Convert.ToByte(i); // Get User Name assigned to User Id GetUserNameResponse UserNameResponse = (GetUserNameResponse)this.IpmiSendReceive( new GetUserNameRequest(userByte), typeof(GetUserNameResponse)); if (UserNameResponse != null) { if (UserNameResponse.CompletionCode == 0) { string userNameStr = System.Text.ASCIIEncoding.ASCII.GetString(UserNameResponse.UserName).TrimEnd('\0'); if (!results.ContainsKey(i)) { results.Add(i, userNameStr); } } } else { // Surpress IpmiResponseException. Most bmc types will not throw exceptions // HP MACH1+ throw exceptions as the does not implement userId's in accordance // with the ipmi specification } UserNameResponse = null; } return(results); }
/// <summary> /// Get user privilege level /// </summary> public virtual UserPrivilege GetUserPrivlige(byte userId, byte channel) { GetUserAccessResponse accessResp = GetUserAccess(userId, channel); UserPrivilege privilege = new UserPrivilege(accessResp.CompletionCode); if (accessResp.CompletionCode == 0) { privilege.SetParamaters(new byte[1] { accessResp.AccessLevel }); } return(privilege); }
/// <summary> /// Get Users. Returns dictionary of User Ids and corresponding User names /// </summary> public virtual Dictionary <int, string> GetUsers() { // create return object Dictionary <int, string> results = new Dictionary <int, string>(); // maximum users int maxUsers = 0; GetUserAccessResponse userAccess = GetUserAccess(defaultUser, defaultChannel); if (userAccess.CompletionCode == 0) { // get maximum user Ids allowed on BMC maxUsers = Convert.ToInt32(userAccess.MaxUsers); } // loop through all User Id slots on BMC // start for loop at defaultUser(1) for (int i = defaultUser; i <= maxUsers; i++) { byte userByte = Convert.ToByte(i); // Get User Name assigned to User Id GetUserNameResponse UserNameResponse = (GetUserNameResponse)this.IpmiSendReceive( new GetUserNameRequest(userByte), typeof(GetUserNameResponse)); if (UserNameResponse != null) { if (UserNameResponse.CompletionCode == 0) { string userNameStr = System.Text.ASCIIEncoding.ASCII.GetString(UserNameResponse.UserName).TrimEnd('\0'); if (!results.ContainsKey(i)) { results.Add(i, userNameStr); } } } UserNameResponse = null; } return(results); }