【问题标题】:Silverlight 4 webclient authentication - anyone have this working yet?Silverlight 4 webclient 身份验证 - 有人有这个工作吗?
【发布时间】:2010-06-05 22:43:24
【问题描述】:

因此,关于新 Silverlight 4 测试版的最佳部分之一是他们最终实现了网络堆栈中缺少的一大功能 - 网络凭据!

在下面我有一个工作请求设置,但由于某种原因,当请求返回时我收到“安全错误” - 这是因为 twitter.com 拒绝了我的 api 调用还是我在代码中缺少的东西?

最好指出,当我通过 fiddler 看到这段代码执行时,它显示跨域的 xml 文件已成功拉下,但这是 fiddler 显示的最后一个请求...

public void RequestTimelineFromTwitterAPI()
        {
               WebRequest.RegisterPrefix("https://", System.Net.Browser.WebRequestCreator.ClientHttp);

               WebClient myService = new WebClient();
               myService.AllowReadStreamBuffering = true;
               myService.UseDefaultCredentials = false;
               myService.Credentials = new NetworkCredential("username", "password");
               myService.UseDefaultCredentials = false;

               myService.OpenReadCompleted += new OpenReadCompletedEventHandler(TimelineRequestCompleted);
               myService.OpenReadAsync(new Uri("https://twitter.com/statuses/friends_timeline.xml"));
        }

        public void TimelineRequestCompleted(object sender, System.Net.OpenReadCompletedEventArgs e)
        {
            //anytime I query for e.Result I get a security error
        }

【问题讨论】:

    标签: silverlight silverlight-4.0 credentials


    【解决方案1】:

    我发现了 2 个导致此请求引发安全异常的问题

    1) - 在 Tim Heuer 的 this video 中,结果证明我的 VS2010 w/Silverlight 4 工具包安装与最终版本不匹配,所以我错过了显示在“浏览器设置之外”对话框中的选项它提供了“在浏览器外运行时需要提升信任”复选框。

    在上面列出的视频中,Tim 对此进行了检查,以便 Silverlight 应用可以与 twitter API 通信

    但是因为我的应用程序没有这个选项,所以我不得不手动编辑 xml 文件,所以它看起来像下面这样。您可以在项目文件夹的属性下或直接在 Visual Studio 中找到此 xml。

    <OutOfBrowserSettings ShortName="TrustedNetworkApp Application" EnableGPUAcceleration="False" ShowInstallMenuItem="True">
      <OutOfBrowserSettings.Blurb>TrustedNetworkApp Application on your desktop; at home, at work or on the go.</OutOfBrowserSettings.Blurb>
      <OutOfBrowserSettings.WindowSettings>
        <WindowSettings Title="TrustedNetworkApp Application" Height="480" Width="640" />
      </OutOfBrowserSettings.WindowSettings>
      <OutOfBrowserSettings.SecuritySettings>
        <SecuritySettings ElevatedPermissions="Required" />
      </OutOfBrowserSettings.SecuritySettings>
      <OutOfBrowserSettings.Icons />
    </OutOfBrowserSettings>
    

    注意**安全设置 ElevatedPermissions="Required"

    保存后就相当于像蒂姆在视频中那样检查了。

    2) - 当我观看 Tim 的视频时,我注意到您必须在浏览器之外对其进行调试才能使其正常工作。所以安装应用程序并在浏览器之外运行它。这个应用现在可以运行了。

    我将写一篇简短的博文来总结我在测试版下使用网络堆栈的经验,并为感兴趣的人提供链接。

    更新

    我终于写了一篇博客post,讲述了我使用 Silverlight 4 构建浏览器 twitter 客户端的经验,如果有人感兴趣的话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      相关资源
      最近更新 更多