使用LDAP时捕获错误的密码

时间:2013-10-10 16:30:35

标签: coldfusion ldap try-catch coldfusion-9

我使用LDAP对我的应用上的用户进行身份验证。

<cftry>
    <cfldap action="query"
      name      ="qryAuth"
      attributes="cn,displayname,mail"
      start     ="DC=corp,DC=com"
      server    ="#LDAPserver#"
      filter    = "(cn=#arguments.EID#)"
      username  ="corp\#arguments.EID#"
      password  ="#arguments.password#">

    <cfset this.addlog(arguments.EID, "Success on #LDAPserver#")>
    <cfreturn true>

    <cfcatch>

        <cfset this.addlog(arguments.EID, "#cfcatch.message# on #LDAPserver#")>

        <cfif cfcatch.message CONTAINS "error code 49">

错误代码49是用户输入错误密码的时间。每次运行时都会记录一个错误。有没有办法通过LDAP检查密码而不使用try / catch?

1 个答案:

答案 0 :(得分:0)

编写一个预解析插件,在服务器执行操作之前执行BIND,并设置一个众所周知的条件,表明BIND将失败。专业品质的LDAP服务器提供开箱即用的描述功能。