public void SamrChangePasswordUser_SUCCESS()
        {
            IChecker PtfAssert   = TestClassBase.BaseTestSite.Assert;
            string   oldPassword = "******";
            string   newPassword = "******";


            CreateTempUser createTempUser = new CreateTempUser(
                _samrProtocolAdapter,
                testUserName,
                oldPassword,
                AdtsUserAccountControl.ADS_UF_NORMAL_ACCOUNT);

            BaseTestSite.Log.Add(LogEntryKind.TestStep,
                                 string.Format("Create test user, username:{0} password:{1}.", testUserName, oldPassword));
            Common.UpdatesStorage.GetInstance().PushUpdate(createTempUser);

            BaseTestSite.Log.Add(LogEntryKind.TestStep,
                                 string.Format("Set user must change password to user:{0}.", testUserName));
            Common.Utilities.UserMustChangePassword(
                _samrProtocolAdapter.pdcFqdn,
                _samrProtocolAdapter.ADDSPortNum,
                _samrProtocolAdapter.primaryDomainUserContainerDN,
                testUserName);

            ConnectAndOpenUser(
                GetPdcDnsName(),
                _samrProtocolAdapter.primaryDomainFqdn,
                testUserName,
                out _userHandle);

            SamrCryptography samrCryptography = new SamrCryptography(oldPassword, newPassword);

            BaseTestSite.Log.Add(LogEntryKind.TestStep,
                                 string.Format("SamrChangePasswordUser, OldPassword:{0}, NewPassword:{1}.", oldPassword, newPassword));
            HRESULT hresult = (HRESULT)SAMRProtocolAdapter.RpcAdapter.SamrChangePasswordUser(
                _userHandle,
                1,
                samrCryptography.GetOldLmEncryptedWithNewLm(),
                samrCryptography.GetNewLmEncryptedWithOldLm(),
                1,
                samrCryptography.GetOldNtEncryptedWithNewNt(),
                samrCryptography.GetNewNtEncryptedWithOldNt(),
                0,
                samrCryptography.GetNewNtEncryptedWithNewLm(),
                0,
                samrCryptography.GetNewLmEncryptedWithNewNt());

            PtfAssert.AreEqual(HRESULT.STATUS_SUCCESS, hresult, "SamrChangePasswordUser returns success.");
        }
Example #2
0
        public void SamrUnicodeChangePasswordUser2_SUCCESS()
        {
            IChecker PtfAssert   = TestClassBase.BaseTestSite.Assert;
            string   oldPassword = "******";
            string   newPassword = "******";


            CreateTempUser createTempUser = new CreateTempUser(
                _samrProtocolAdapter,
                testUserName,
                oldPassword,
                AdtsUserAccountControl.ADS_UF_NORMAL_ACCOUNT);

            BaseTestSite.Log.Add(LogEntryKind.TestStep,
                                 string.Format("Create test user, username:{0} password:{1}.", testUserName, oldPassword));
            Common.UpdatesStorage.GetInstance().PushUpdate(createTempUser);

            BaseTestSite.Log.Add(LogEntryKind.TestStep,
                                 string.Format("Set user must change password to user:{0}.", testUserName));
            Common.Utilities.UserMustChangePassword(
                _samrProtocolAdapter.pdcFqdn,
                _samrProtocolAdapter.ADDSPortNum,
                _samrProtocolAdapter.primaryDomainUserContainerDN,
                testUserName);

            Site.Log.Add(LogEntryKind.TestStep, "Initialize: Create Samr Bind to the server.");
            _samrProtocolAdapter.SamrBind(
                GetPdcDnsName(),
                _samrProtocolAdapter.primaryDomainFqdn,
                _samrProtocolAdapter.DomainAdministratorName,
                _samrProtocolAdapter.DomainUserPassword,
                false,
                true);

            SamrCryptography samrCryptography = new SamrCryptography(oldPassword, newPassword);

            BaseTestSite.Log.Add(LogEntryKind.TestStep,
                                 string.Format("SamrUnicodeChangePasswordUser2, OldPassword:{0}, NewPassword:{1}.", oldPassword, newPassword));
            HRESULT hResult = (HRESULT)SAMRProtocolAdapter.RpcAdapter.SamrUnicodeChangePasswordUser2(
                SAMRProtocolAdapter.RpcAdapter.Handle,
                DtypUtility.ToRpcUnicodeString(_samrProtocolAdapter.pdcNetBIOSName),
                DtypUtility.ToRpcUnicodeString(testUserName),
                samrCryptography.GetNewPasswordEncryptedWithOldNt(),
                samrCryptography.GetOldNtEncryptedWithNewNt(),
                0x01,
                samrCryptography.GetNewPasswordEncryptedWithOldLm(PasswordType.Unicode),
                samrCryptography.GetOldLmOwfPasswordEncryptedWithNewNt());

            PtfAssert.AreEqual(HRESULT.STATUS_SUCCESS, hResult, "SamrOemChangePasSamrUnicodeChangePasswordUser2swordUser2 returns success.");
        }