1

There is some simple code for communicating with Tridion over Core Services.The requirement is to get some items from Tridion using basic http protocol for Core Services. I am running the application as console program on my local PC. The Code works fine for different environments so no issue with code.

First problem which we had was related to LDAP and expired password of related account. This was causing with loading Tridion, it was not accessible at all. This is solved by setup new password and restart of com+, tridion services and IIS. Tridion was working.

But, when the application runs after resolving the previous issue, there as an error

System.ServiceModel.FaultException`1[Tridion.ContentManager.CoreService.Client.CoreServiceFault]: Account 'NT AUTHORITY\IUSR' has no permission to access the protected configuration section 'database'. Contact your system administrator..

possible solution was found on the Tridion Re-Index tool cannot be executed and http://docs.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_215FCD336DE34DD5AD342951F6AB3683 d

So we did that for one regular user in tridion and also for NT AUTHORITHY\IUSR user

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

After running application again, there is a new issue

System.ServiceModel.FaultException`1[Tridion.ContentManager.CoreService.Client.CoreServiceFault]: A database error occurred while executing Stored Procedure "EDA_DIRECTORY_GROUP_MEMBERSHIPS_GETLIST". Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'..

And in Event Viewer there is

A database error occurred while executing Stored Procedure "EDA_DIRECTORY_GROUP_MEMBERSHIPS_GETLIST". Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. Component: Tridion.ContentManager.CoreService Errorcode: 831 User: NT AUTHORITY\NETWORK SERVICE StackTrace Information Details: at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)

Any help? Any thoughts?

Thanks.

  • 1
    It sure looks like the whole of Tridion is having serious security configuration issues, not related to Core Service at all. – Nuno Linhares Dec 30 '15 at 19:15
  • For your core service application issue you can refer tridion.stackexchange.com/questions/12914/…. but as Nuno suggested, first try to fix the issue. Are you getting this issue when you are trying to connect coreservice from your application only ? – Sayantan Basu Dec 31 '15 at 5:35
  • Application works fine if I change environment credentials (host server, user name and password), so no issue related to code itself. I tried with different user but same issue as the last error state. @NunoLinhares do you have any idea related to security what can be wrong? – Ljiljana Eric Dec 31 '15 at 7:08
1

NT AUTHORITHY\IUSR is used by IIS to annonymous access. It is not necessary to be granted to read TridionRsaKeyContainer.

Have you set on your IIS Tridion Website, Annonymous Authentication enabled? if the answer is yes, you have to change this setting to disable and set Windows Authentication to Enable.

I hope this helps you!

1

I agree with the point with annonymous access (+1 for that). It seems Active directory group users are configured. In that case, You can try with the current windows login for accessing the Tridion CME from your application using Core service client. Like below in the class constructor:

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

You can refer here for the core service configuration and code.

Let me know if this helps !!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.