当ColdFusion首次发布jRun引擎时,许多用户中的一个问题是如何在Windows AD环境下进行身份验证?当时(如果我没记错),Macromedia免费提供了一个cfc,它使用一个或多个Java类文件创建了一个Java对象,这些类文件与jRun一起提供(该组件的相关函数代码将在本消息的末尾显示,但不包括归属)。该代码已经适用于CF服务器的6-9版本,该代码运行良好,但随着CF 10的推出和jRun作为底层Java服务器的取消,由于Tomcat服务器未包含类文件,因此该代码不再可用。是否有其他人处于类似情况?如果是,您是如何完成从CF 10的过渡并继续对Microsoft Active Directory进行身份验证的呢?在我们特定的业务环境中,LDAP没有配置进行身份验证,因此我们不能选择针对LDAP进行身份验证,并且LDAP控制超出了我们小部门的权限范围(由中央IT管理机构处理)。至于我们的本地服务器,我们运行Windows Server 2008 R2、IIS 7.5、JRE 1.7 64位和ColdFusion 10 SE 64位。如果有任何想分享的想法,请告诉我,谢谢。
以下是代码片段:
以下是代码片段:
<!--- Authenticates the user and outputs true on success and false on failure. --->
<CFFUNCTION NAME="authenticateUser" ACCESS="REMOTE" OUTPUT="yes" STATIC="yes" HINT="Authenticates the user.">
<CFARGUMENT NAME="userid" TYPE="string" REQUIRED="true" />
<CFARGUMENT NAME="passwd" TYPE="string" REQUIRED="true" />
<CFARGUMENT NAME="domain" TYPE="string" REQUIRED="true" />
<CFTRY>
<CFSCRIPT>
ntauth = createObject("java", "jrun.security.NTAuth");
ntauth.init(arguments.domain);
// authenticateUser throws an exception if it fails,
// so we don't have anything specific here
ntauth.authenticateUser(arguments.userid, arguments.passwd);
auth = true;
</CFSCRIPT>
<CFCATCH>
<CFSET auth = false>
</CFCATCH>
</CFTRY>
<CFRETURN AUTH>
</CFFUNCTION>