Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }