2013-08-05 26 views
0

我在IIS上擁有基本身份驗證。我的WPF應用程序使用WebBrowser連接到在IIS上發佈的Silverlight應用程序。我嘗試不同的方式來預定義憑據。 像這樣:憑證。 Silverlight應用程序中的C#授權

Uri uri = new Uri("http://1.1.1.1/MyApp"); 
byte[] authData = System.Text.UnicodeEncoding.UTF8.GetBytes("user: password"); 
string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData) + "\r\n"; 
this.browser.Navigate(uri, "", null, authHeader); 

但是這個問題不起作用。我可以這樣做:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); 
CredentialCache credentials = new CredentialCache(); 
credentials.Add(
    uri, "Basic", 
    new NetworkCredential("user", "password")); 
    request.Credentials = credentials; 
    request.PreAuthenticate = true; 
    WebResponse response = request.GetResponse(); 
    this.browser.NavigateToStream(response.GetResponseStream()); 

但是在那種情況下,我不能使用Silverlight.js和所有其他樣式和JavaScript。

回答

0

有一種方法通過提供一個自定義的IOleClientSite對象,還實現的IServiceProviderIAuthenticate進行接口的WebBrowser控件來實現這一點。通過IAuthenticate你會提供你的憑證。這種方法涉及一些黑客。您可以參考這個出色的博客post瞭解實施細節。

+0

這沒有幫助我,困難 但現在我知道我的憑據和身份驗證不工作只在Silverlight應用程序,並且所有的okey當我pubich只是index.html文件 – Novikov