En el post anterior vimos como acceder a un servicio web que estuviese en otro dominio sin los ficheros Crossdomain.xml o ClientAccessPolicy.xml, en el ejemplo el acceso era a Twitter pero a los tweets públicos, que pasa si quiero acceder a mis tweets?. Esto es posible en Silverrlight 4 ya que se ha habilita el paso de credenciales vía hhtp.
El código de la anterior aplicación nos quedaría en este caso de la siguiente manera
1: WebRequest.RegisterPrefix("http://", System.Net.Browser.WebRequestCreator.ClientHttp);
2: string userTimeLine = "http://twitter.com/statuses/user_timeline/" + UserNameTextBox.Text + ".xml";
3: WebClient client = new WebClient();
4: client.Credentials = new NetworkCredential(UserNameTextBox.Text, PasswordTextBox.Password);
5: client.UseDefaultCredentials = false;
6: client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(user_DownloadStringCompleted);
7: client.DownloadStringAsync(new Uri(userTimeLine, UriKind.Absolute));
Importante es la linea client.UseDefaultCredentials = false; ya que si no ponemos a false la propiedad UseDefaultCredentials Silverlight pasara las credenciales del usuario logeado en la maquina (NTLM).
A probarlo!!!!
En el post anterior vimos como acceder a un servicio web que estuviese en otro dominio sin los ficheros