核心服务登录问题(存储过程)


1

有一些简单的代码用于通过核心服务与Tridion进行通信。要求是使用基本http协议从核心服务获取Tridion的一些项目。我在本地PC上运行该应用程序作为控制台程序。该代码适用于不同的环境,所以没有代码问题。

我们有的第一个问题是与LDAP和相关帐户的过期密码有关。这是导致加载Tridion,它根本无法访问。 这可以通过设置新密码并重新启动com +,tridion服务和IIS来解决。 Tridion正在工作。

但是,当解决以前的问题,也为错误

System.ServiceModel.FaultException'1 [Tridion.ContentManager.CoreService.Client.CoreServiceFault]后,在应用程序运行:帐户“NT AUTHORITY \ IUSR'没有权限访问受保护的配置节'数据库'。与系统管理员联系..

可能的溶液在 Tridion Re-Index tool cannot be executedhttp://docs.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_215FCD336DE34DD5AD342951F6AB3683 d发现

所以我们做的是对的tridion,也为NT AUTHORITHY \ IUSR用户一个普通用户

aspnet_regiis -pa "TridionRsaKeyContainer" "<domain>\<account>" 

再次运行应用程序后,出现新问题

System.ServiceModel.FaultException'1 [Tridion.ContentManager.CoreService.Client.CoreServiceFault]:执行存储过程“EDA_DIRECTORY_GROUP_MEMBERSHIPS_GETLIST”时发生数据库错误。 用户登录失败 'NT AUTHORITY \ ANONYMOUS登录' ..

而且在事件查看器有

数据库出现错误而执行存储过程 “EDA_DIRECTORY_GROUP_MEMBERSHIPS_GETLIST”。 用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败。 组件:Tridion.ContentManager.CoreService 错误码:831 用户:NT AUTHORITY \ NETWORK SERVICE 堆栈跟踪信息详情: 在System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection,Action'1 wrapCloseInAction) 在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔callerHasConnectionLock,布尔asyncClose) 在System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand的cmdHandler,SqlDataReader的数据流,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,布尔& dataReady) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataRe ader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds。AttemptOneLogin(ServerInfo serverInfo,字符串NEWPASSWORD,SecureString的newSecurePassword,布尔ignoreSniOpenTimeout,TimeoutTimer超时,布尔withFailover)

任何帮助吗?有什么想法吗?

谢谢。

+1

它肯定看起来有很严重的安全配置问题,都没有涉及到核心服务整个外表套上的。 30 12月. 152015-12-30 19:15:33

  0

如果我更改环境证书(主机服务器,用户名和密码),应用程序工作正常,所以没有问题与代码本身相关。 我试着用不同的用户,但是与最后一个错误状态相同的问题。 @NunoLinhares你对安全有任何想法可能是错误的? 31 12月. 152015-12-31 07:08:51

1

NT AUTHORITHY \ IUSR IIS使用到annonymous访问。没有必要授予阅读TridionRsaKeyContainer。

你有你的IIS外表套上网站设置,启用Annonymous认证?如果答案为是,则必须更改此设置以禁用并将Windows身份验证设置为启用。

我希望这可以帮助你!


1

我同意与annonymous访问(+1为)点。看来Active Directory组用户已配置。在这种情况下,您可以使用当前的Windows登录名尝试使用Core服务客户端从您的应用程序访问Tridion CME。如下面在类的构造函数:

public CoreService() 
{ 
_client = new SessionAwareCoreServiceClient(“wsHttp”); 
_client.Impersonate(WindowsIdentity.GetCurrent().Name); 
} 

您可以参考here为核心服务的配置和代码。

让我知道这是否有帮助!