C# 需要授权的图像源URI

C# 需要授权的图像源URI,c#,wpf,C#,Wpf,在我的WPF窗口中有一个图像,它的UriSource被设置为internet上某个图像的URL <Image> <Image.Source> <BitmapImage UriSource="http://tinyurl.com/anmucph" /> </Image.Source> </Image> 当我在internet上使用公共可访问的映像时,一切都正常工作:WPF框架执行必要的HTTPGET请

在我的WPF
窗口中
有一个
图像
,它的
UriSource
被设置为internet上某个图像的URL

<Image>
    <Image.Source>
        <BitmapImage UriSource="http://tinyurl.com/anmucph" />
    </Image.Source>
</Image>

当我在internet上使用公共可访问的映像时,一切都正常工作:WPF框架执行必要的HTTPGET请求并显示映像

我想做的是使用一个
UriSource
,它是一个URL,要求HTTP GET请求附带一个授权头。(我有需要使用的授权标头字符串。)


如何使用需要授权的
UriSource
?WPF中有内置的东西吗?或者这需要定制解决方案吗?如果是这样,我如何连接到WPF框架中以提供用于执行HTTP GET的自定义逻辑?

您有资源的用户名和密码吗?如果域名只是标准HTTP身份验证,则可以这样指定域名:

http://username:password@tinyurl.com/anmucph

你有资源的用户名和密码吗?如果域名只是标准HTTP身份验证,则可以这样指定域名:

http://username:password@tinyurl.com/anmucph

这不能用WPF中内置的工具来完成

另一种方法是创建一个轻量级的本地HTTP代理,该代理具有一个

  • GEThttp://localhost:####/proxy?uri={uri}&authorization={authorization}
操作(端口#######位于防火墙后面),从而使

  • GET{uri}
具有提供的授权标头值的请求


然后可以将
UriSource
设置为
http://localhost:####/proxy?uri=X&authorization=Y
其中
X
是要显示的安全资源的URI编码URI,
Y
是要与
GET
请求一起发送的URI编码授权头。

这不能通过内置的工具完成WPF

另一种方法是创建一个轻量级的本地HTTP代理,该代理具有一个

  • GEThttp://localhost:####/proxy?uri={uri}&authorization={authorization}
操作(端口#######位于防火墙后面),从而使

  • GET{uri}
具有提供的授权标头值的请求


然后可以将
UriSource
设置为
http://localhost:####/proxy?uri=X&authorization=Y
其中
X
是要显示的安全资源的URI编码URI,
Y
是要与
GET
请求一起发送的URI编码授权头。

我知道这是一个旧线程,但我想跟进我找到的解决方案

net有一个很酷的特性,可以让您在系统或应用程序级别上用自己的方法覆盖它的核心。这可以为WebRequest.Create方法完成

这篇文章是一个完整的例子,包括IWebRequestCreate,这样你就不会陷入递归

所有这些之后,应用程序范围中的所有内容都将被迫使用create方法


注意:在添加身份验证头之前,请确保您位于正确的域中,这样您就不会将身份验证发送到其他位置:)

我知道这是一个旧线程,但我想继续使用我找到的解决方案

net有一个很酷的特性,可以让您在系统或应用程序级别上用自己的方法覆盖它的核心。这可以为WebRequest.Create方法完成

这篇文章是一个完整的例子,包括IWebRequestCreate,这样你就不会陷入递归

所有这些之后,应用程序范围中的所有内容都将被迫使用create方法


注意:在添加您的授权头之前,请确保您位于正确的域中,这样您就不会将您的授权发送到其他位置:)

如果我从浏览器执行此操作-我尝试了Chrome和Firefox-它将添加到相应的“Basic64({username}:{password})”授权头上。但这在WPF中似乎不起作用。这是,因此WPF也不会起作用!如果我在浏览器中执行此操作(我尝试了Chrome和Firefox),它将添加相应的“Base64({username}:{password})”授权头。但这在WPF中似乎不起作用。这是,因此WPF也不会起作用!