资格证书Silverlight应用程序中的C#授权

本文关键字:授权 应用程序 证书 Silverlight | 更新日期: 2023-09-27 18:26:30

我在IIS上有基本身份验证。我的WPF应用程序使用WebBrowser连接到IIS上发布的Silverlight应用程序。我尝试了不同的方式来预定义凭据。比如:

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。

资格证书Silverlight应用程序中的C#授权

有一种方法可以实现这一点,方法是为WebBrowser控件提供自定义的IOleClientSite对象,该对象还实现IServiceProviderIAuthenticate接口。通过IAuthenticate,您可以提供凭据。这种方法需要一些技巧。您可以参考这篇优秀的博客文章来了解实现的详细信息。