我用ASP.net MembershipUser 中的ChangePassword(oldPassword, newPassword)方法修改AD中的密码 总是报出:“密码不满足密码策略的要求。检查最小密码长度、密码复杂性和密码历史的要求。 (异常来自 HRESULT:0x800708C5)” 这个错误 
    但是我从域安全策略中查看了AD的密码复杂性要求 ,我输入的密码是符合这里面的要求。但还是报这个错误;如果在AD中直接重置密码就可以。这是什么地方出错了?请教各位高手!

解决方案 »

  1.   

    检查web.config中的membership段,看看里面的设置都是什么
    里面的策略未必和AD里的策略一直
      

  2.   

    您说的是这两个配置下面这两个配置吗?
    minRequiredPasswordLength="7"
    minRequiredNonalphanumericCharacters="1"
    它和AD中的一样的
      

  3.   

    重置密码?管理员才能重置密码...注意密码历史要求,这个是Membership里没有的...如果AD“强制密码历史”策略启用,则新密码不能与之前设定次数设置的任何一次密码相同...
      

  4.   

    我把密码策略中的最短密码使用期设为0 后(以前默认为1)  就可以修改密码了
    但是密码修改成功后,旧密码仍然可以登录,新密码也行 
     请问这是这么回事?Web.config中的MemberShip配置是这样的:
    <membership defaultProvider="MyADMembershipProvider">
          <providers>
            <clear/>
            <add
               name="MyADMembershipProvider"
               type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               connectionStringName="ADConnectionString"
               connectionUsername="xinge\testwenshu"
               connectionPassword="oa.6668"
               attributeMapUsername="sAMAccountName"
               enablePasswordReset="false"
               requiresQuestionAndAnswer="false"
               minRequiredPasswordLength="7"
               minRequiredNonalphanumericCharacters="1"
               maxInvalidPasswordAttempts="5"
               passwordAttemptWindow="10"
               passwordAnswerAttemptLockoutDuration="60"
               enableSearchMethods="true"
               />
    不知道是哪里出错了,请教?