When creating a multimedia component and selecting a resource type external, We are pulling in an image from an external system. We have noticed that anonymous authentication is used. We need to pass credentials. Does anyone know of a way to do this without using the ECL connector?
2 Answers
From SDL Tridion 2011 SP1 HR1 onwards you could use a BinaryContentProvider
. With this extension point you can implement your own logic to handle external URLs on multimedia components. Here you can implement your own logic to authenticate and download the media.
This is documented in the TOM.NET API documentation in the IBinaryContentProvider
. Also see the example on http://amarchuk.blogspot.nl/2013/06/binary-content-provider-in-sdl-tridion.html.
-
Isn't this almost as complicated to do with an ECL provider that would bring more benefits? Delegating authentication is always hard to do, especially when you have to cater for publishing of an asset (that may run as a separate user)– Nuno Linhares ♦Commented Oct 29, 2013 at 15:51
-
Did you have a look at developing a custom ECL provider [user525]?– Jan HCommented Oct 29, 2013 at 15:58
-
@Nuno: The BinaryContentProvider interface is way smaller than the ECL provider API, it will be much faster to implement. An ECL provider will bring you much more functionality, like browsing though a mount point, but there might not be a need for that or the external system might not support that. The question does not state anything about the authentication requirements, but if it the authentication has to be delegated to the Tridion user then it will not be an easy task to implement this indeed.– Jan HCommented Oct 29, 2013 at 15:59
As Jan mention before you have to implement the your custom IBinaryContentProvider
and add your authentication logic to the method
public void WriteContentToStream(Uri uri, Stream outStream)
{
...
}
-
We are using Tridion 2011 SP1 and we would use Windows authentication, not anonymous. I will have a look at building a custom ECL. Thanks– BryanDCommented Oct 30, 2013 at 20:03