3

ログインが必要な RESTful Web サービスを使用するアプリを開発しています。このログインはセッション Cookie で検証され、データをダウンロードするWebClientには、次の拡張機能を使用しました。

public class CookieWebClient : WebClient
{
    [SecuritySafeCritical]
    public CookieWebClient() : base()
    {
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address);
        if (request is HttpWebRequest)
        {
            (request as HttpWebRequest).CookieContainer = App.GlobalCookieContainer;
        }
        return request;
    }
}

ただし、返されるデータの一部は、別の で表示される画像サムネイルの URI ですListBoxesImageSourceWeb サービスにログインを使用する前に、データ内の指定された URI に をバインドするだけです。

<Image Source="{Binding Icon_Url}" />

ただし、ログインを使用する必要があるため、画像を取得するときに Cookie を提供する必要があります。したがってIValueConverter、私は URI を渡す場所でトリックを行うと考えました。これは、 WP7 でしか非同期呼び出しを行うことができないことを思い出すまでBitmapImage、拡張された で をダウンロードします。WebClientWebClient

だから私の質問は

リクエストに Cookie が必要なImageコントロールの画像をダウンロードするにはどうすればよいですか?LisBoxItem

ありがとうございました!

4

1 に答える 1

0

http クラスを使用してイメージをダウンロードし、イメージを手動で設定できます。

var stream = httpResponse.GetResponseStream(); 
var bitmap = new BitmapImage();
bitmap.SetSource(stream);
image.Source = bitmap;

ただし、これは単純な XAML バインディングでは機能しません... (ただし、このロジックを添付プロパティにラップすることはできます)

于 2012-08-10T22:01:50.457 に答える