Windows Workflow InvokeWebService Activity and Client Credentials
Filed Under : development by cristian
Feb.3,2010En los últimos meses he estado ya más que aburrido en Microsoft Workflow Foundation, una relativamente impresionante framework de creación de flujos de trabajo de forma declarativa (o por lo menos así lo mencionan teóricamente, luego conversamos más de esto). Hoy mi cliente me menciona que uno de sus workflows no funciona, si, así de descriptivo…
Revisando el tracelog del proceso me doy cuenta que simplemente se debe a que dentro del Workflow existe una InvokeWebService Activity, yep, esta es una actividad de Workflow Foundation 3.0 diseñada para consumir viejos servicios ASMX.
Como recordaremos nuestro viejo ASMX no soporta configurar cosas como credenciales desde el archivo de configuración (como lo soporta WCF obviamente) y esto puede hacerse fácilmente desde código, el problema es que a “simple vista” nuestra InvokeWebService Activity no presenta una forma de cambiar las credenciales, es cuando un poco de lectura en MSDN nos ayuda enormemente
Bien, si bien no podemos “settear” las credenciales de un webservice directamente en el designer, lo podemos hacer en “código” antes que el servicio sea invocado, eso lo logramos con un handler al evento Invoking
Lo demás es simple manejo de credenciales en ASMX webservices.
// C# Code: Dentro del codebehind del workflow
protected void InvokeWebService_Invoking(Object sender, InvokeWebServiceEventArgs e) {
var proxy = e.WebServiceProxy as MyWebServiceDefinition;
if (proxy == null) return;
proxy.ClientCrendetials =
new System.Net.NetworkCredential("usuario", "password");
}
' VB Code
Public Sub InvokeWebService_Invoking(e As InvokeWebServiceEventArgs)
Dim proxy = CType(e.WebServiceProxy, MyWebServiceDefinition)
If proxy IsNot Nothing Then
proxy.Credentials = New System.Net.NetworkCredentials("usuario", "password")
End If
End Sub
Ojo con las definiciones anteriores, WebServiceProxy retorna tipo Object, por lo que hay que castearlo al tipo del webservice en específico.
Suficiente Workflow Foundation por hoy… Por cierto, les interesa el tema? ¿les gustaría más de WF en el futuro?
Saludos!
You can leave a response, or trackback from your own site.
-
Felipe
-
Ricardo
Tags :