public void SamrSetInformationUser2_Preferences() { ConnectAndOpenDomain(_samrProtocolAdapter.pdcFqdn, _samrProtocolAdapter.PrimaryDomainDnsName, out _serverHandle, out _domainHandle); Site.Log.Add(LogEntryKind.TestStep, "SamrCreateUser2InDomain: create a user with Name:{0}, AccountType:{1} and DesiredAccess:{2}", testUserName, ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, Common_ACCESS_MASK.MAXIMUM_ALLOWED); uint grantedAccess, relativeId; HRESULT result = _samrProtocolAdapter.SamrCreateUser2InDomain(_domainHandle, testUserName, (uint)ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, (uint)User_ACCESS_MASK.USER_ALL_ACCESS, out _userHandle, out grantedAccess, out relativeId); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrCreateUser2InDomain returns:{0}.", result); Site.Assert.IsNotNull(_userHandle, "The returned user handle is: {0}.", _userHandle); Site.Log.Add(LogEntryKind.TestStep, "SamrSetInformationUser2 with UserPreferencesInformation."); _SAMPR_USER_INFO_BUFFER expectUserInfo = new _SAMPR_USER_INFO_BUFFER(); string newUserComment = "SamrNewUserComment"; expectUserInfo.Preferences.CodePage = 1200; expectUserInfo.Preferences.CountryCode = 44; expectUserInfo.Preferences.Reserved1 = _samrProtocolAdapter.StringToRpcUnicodeString(""); expectUserInfo.Preferences.UserComment = _samrProtocolAdapter.StringToRpcUnicodeString(newUserComment); result = _samrProtocolAdapter.SamrSetInformationUser2(_userHandle, _USER_INFORMATION_CLASS.UserPreferencesInformation, expectUserInfo); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrSetInformationUser2 returns:{0}.", result); Site.Log.Add(LogEntryKind.TestStep, "SamrQueryInformationUser2 with UserPreferencesInformation."); _SAMPR_USER_INFO_BUFFER? actualUserInfo; result = _samrProtocolAdapter.SamrQueryInformationUser2(_userHandle, _USER_INFORMATION_CLASS.UserPreferencesInformation, out actualUserInfo); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrQueryInformationUser2 returns:{0}.", result); Site.Assert.AreEqual(1200, actualUserInfo.Value.Preferences.CodePage, "The CodePage has been set successfully."); Site.Assert.AreEqual(44, actualUserInfo.Value.Preferences.CountryCode, "The CountryCode has been set successfully."); Site.Assert.IsNull(actualUserInfo.Value.Preferences.Reserved1.Buffer, "Reserved1: Ignored by the client and server and MUST be a zero-length string when sent and returned."); Site.Assert.AreEqual(newUserComment, utilityObject.convertToString(actualUserInfo.Value.Preferences.UserComment.Buffer), "The UserComment has been set successfully."); Site.Log.Add(LogEntryKind.TestStep, "SamrDeleteUser: delete the created user."); result = _samrProtocolAdapter.SamrDeleteUser(ref _userHandle); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrDeleteUser returns:{0}.", result); }
public void SamrSetInformationUser_AdminComment() { ConnectAndOpenDomain(_samrProtocolAdapter.pdcFqdn, _samrProtocolAdapter.PrimaryDomainDnsName, out _serverHandle, out _domainHandle); try { Site.Log.Add(LogEntryKind.TestStep, "SamrCreateUser2InDomain: create a user with Name:{0}, AccountType:{1} and DesiredAccess:{2}", testUserName, ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, Common_ACCESS_MASK.MAXIMUM_ALLOWED); uint grantedAccess, relativeId; HRESULT result = _samrProtocolAdapter.SamrCreateUser2InDomain(_domainHandle, testUserName, (uint)ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, (uint)User_ACCESS_MASK.USER_ALL_ACCESS, out _userHandle, out grantedAccess, out relativeId); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrCreateUser2InDomain returns:{0}.", result); Site.Assert.IsNotNull(_userHandle, "The returned user handle is: {0}.", _userHandle); Site.Assert.IsTrue(_samrProtocolAdapter.VerifyRelativeID(relativeId), "The Rid value MUST be within the Rid-Range"); Site.Assert.AreEqual((uint)User_ACCESS_MASK.USER_ALL_ACCESS, grantedAccess, "The return parameter of GrantedAccess MUST be set to DesiredAccess if DesiredAccess contains only valid access masks for the user object "); Site.Log.Add(LogEntryKind.TestStep, "SamrSetInformationUser: update attributes on a user object."); _SAMPR_USER_INFO_BUFFER expectUserInfo = new _SAMPR_USER_INFO_BUFFER(); expectUserInfo.AdminComment.AdminComment = _samrProtocolAdapter.StringToRpcUnicodeString("TestAdminComment"); result = _samrProtocolAdapter.SamrSetInformationUser(_userHandle, _USER_INFORMATION_CLASS.UserAdminCommentInformation, expectUserInfo); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrSetInformationUser returns:{0}.", result); Site.Log.Add(LogEntryKind.TestStep, "SamrQueryInformationUser: obtain attributes from a user object."); _SAMPR_USER_INFO_BUFFER?actualUserInfo; result = _samrProtocolAdapter.SamrQueryInformationUser(_userHandle, _USER_INFORMATION_CLASS.UserAdminCommentInformation, out actualUserInfo); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrQueryInformationUser returns:{0}.", result); Site.Assert.AreEqual(utilityObject.convertToString(expectUserInfo.AdminComment.AdminComment.Buffer), utilityObject.convertToString(actualUserInfo.Value.AdminComment.AdminComment.Buffer), "The AdminComment has been set successfully."); } finally { Site.Log.Add(LogEntryKind.TestStep, "SamrDeleteUser: delete the created user."); HRESULT result = _samrProtocolAdapter.SamrDeleteUser(ref _userHandle); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrDeleteUser returns:{0}.", result); } }
public void SamrSetInformationUser2_Home() { ConnectAndOpenDomain(_samrProtocolAdapter.pdcFqdn, _samrProtocolAdapter.PrimaryDomainDnsName, out _serverHandle, out _domainHandle); Site.Log.Add(LogEntryKind.TestStep, "SamrCreateUser2InDomain: create a user with Name:{0}, AccountType:{1} and DesiredAccess:{2}", testUserName, ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, Common_ACCESS_MASK.MAXIMUM_ALLOWED); uint grantedAccess, relativeId; HRESULT result = _samrProtocolAdapter.SamrCreateUser2InDomain(_domainHandle, testUserName, (uint)ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, (uint)User_ACCESS_MASK.USER_ALL_ACCESS, out _userHandle, out grantedAccess, out relativeId); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrCreateUser2InDomain returns:{0}.", result); Site.Assert.IsNotNull(_userHandle, "The returned user handle is: {0}.", _userHandle); Site.Log.Add(LogEntryKind.TestStep, "SamrSetInformationUser2 with UserHomeInformation."); _SAMPR_USER_INFO_BUFFER expectUserInfo = new _SAMPR_USER_INFO_BUFFER(); string newHomeDirectory = "SamrNewHomeDirectory"; string newHomeDirectoryDrive = "SamrNewHomeDirectoryDrive"; expectUserInfo.Home.HomeDirectory = _samrProtocolAdapter.StringToRpcUnicodeString(newHomeDirectory); expectUserInfo.Home.HomeDirectoryDrive = _samrProtocolAdapter.StringToRpcUnicodeString(newHomeDirectoryDrive); result = _samrProtocolAdapter.SamrSetInformationUser2(_userHandle, _USER_INFORMATION_CLASS.UserHomeInformation, expectUserInfo); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrSetInformationUser2 returns:{0}.", result); Site.Log.Add(LogEntryKind.TestStep, "SamrQueryInformationUser2 with UserHomeInformation."); _SAMPR_USER_INFO_BUFFER?actualUserInfo; result = _samrProtocolAdapter.SamrQueryInformationUser2(_userHandle, _USER_INFORMATION_CLASS.UserHomeInformation, out actualUserInfo); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrQueryInformationUser2 returns:{0}.", result); Site.Assert.AreEqual(newHomeDirectory, utilityObject.convertToString(actualUserInfo.Value.Home.HomeDirectory.Buffer), "The HomeDirectory has been set successfully."); Site.Assert.AreEqual(newHomeDirectoryDrive, utilityObject.convertToString(actualUserInfo.Value.Home.HomeDirectoryDrive.Buffer), "The HomeDirectoryDrive has been set successfully."); Site.Log.Add(LogEntryKind.TestStep, "SamrDeleteUser: delete the created user."); result = _samrProtocolAdapter.SamrDeleteUser(ref _userHandle); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrDeleteUser returns:{0}.", result); }
public void SamrSetInformationUser2_Logon() { ConnectAndOpenDomain(_samrProtocolAdapter.pdcFqdn, _samrProtocolAdapter.PrimaryDomainDnsName, out _serverHandle, out _domainHandle); Site.Log.Add(LogEntryKind.TestStep, "SamrCreateUser2InDomain: create a user with Name:{0}, AccountType:{1} and DesiredAccess:{2}", testUserName, ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, Common_ACCESS_MASK.MAXIMUM_ALLOWED); uint grantedAccess, relativeId; HRESULT result = _samrProtocolAdapter.SamrCreateUser2InDomain(_domainHandle, testUserName, (uint)ACCOUNT_TYPE.USER_NORMAL_ACCOUNT, (uint)User_ACCESS_MASK.USER_ALL_ACCESS, out _userHandle, out grantedAccess, out relativeId); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrCreateUser2InDomain returns:{0}.", result); Site.Assert.IsNotNull(_userHandle, "The returned user handle is: {0}.", _userHandle); _SAMPR_USER_INFO_BUFFER expectUserInfo = new _SAMPR_USER_INFO_BUFFER(); expectUserInfo.Logon.LogonCount = 10; Site.Log.Add(LogEntryKind.TestStep, "SamrSetInformationUser2 with UserLogonInformation."); result = _samrProtocolAdapter.SamrSetInformationUser2(_userHandle, _USER_INFORMATION_CLASS.UserLogonInformation, expectUserInfo); Site.Assert.AreNotEqual(HRESULT.STATUS_SUCCESS, result, "3.1.5.6.4.1 If the value of UserInformationClass was not found in the previous three constraints, the server MUST return an error."); Site.Log.Add(LogEntryKind.TestStep, "SamrDeleteUser: delete the created user."); result = _samrProtocolAdapter.SamrDeleteUser(ref _userHandle); Site.Assert.AreEqual(HRESULT.STATUS_SUCCESS, result, "SamrDeleteUser returns:{0}.", result); }