提问人:AkshatSparrow 提问时间:10/14/2023 更新时间:10/14/2023 访问量:52
从远程桌面生成图像的 URL [已关闭]
URL generation of an image from remote desktop [closed]
问:
我在服务器上有一个受保护的图像。
是否可以在 WEB API 中使用 C# 为该图像生成 URL ASP.NET。
我不想先将该图像保存在其他位置,然后生成它的 URL。
如果可能的话,我是否需要对服务器的设置进行任何更改?
我也会在服务器的安全性上妥协。
答:
1赞
user22737373
10/14/2023
#1
若要在 ASP.NET Web API 应用程序中为安全服务器上的图像生成 URL,而无需将图像保存在其他位置,可以使用以下方法:
代理映像:在 ASP.NET Web API 中创建控制器或终结点,用作受保护映像的代理。当向此终结点发出请求时,您的代码将从受保护的服务器获取图像,并将其直接流式传输到客户端,而无需将其保存到服务器的本地存储中。
身份验证:您可能需要处理身份验证才能访问映像所在的安全服务器。这可能涉及在代码中发送适当的凭据或身份验证令牌以访问映像。具体的身份验证方法取决于服务器的安全设置。
下面是一个简化的示例,说明如何在 ASP.NET Web API 中实现此目的:
public class ImageController : ApiController
{
public IHttpActionResult GetImage()
{
// Add code to authenticate and retrieve the image from the secured server
// Example: Fetch image from a secured server using HttpClient
using (var httpClient = new HttpClient())
{
// Set up authentication if required
// httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YourToken");
// Fetch the image from the secured server
HttpResponseMessage response = httpClient.GetAsync("https://secure-server-url/image.jpg").Result;
if (response.IsSuccessStatusCode)
{
// Stream the image to the client without saving it locally
var contentStream = response.Content.ReadAsStreamAsync().Result;
return new StreamResult(contentStream, "image/jpeg");
}
else
{
return NotFound();
}
}
}
}
在此示例中,StreamResult 类是用于将图像流式传输到客户端的自定义实现。您可以根据需要调整代码以处理不同的图像类型、错误处理和身份验证。
请注意,此方法不会损害受保护服务器的安全性,因为您仍然需要进行身份验证并具有适当的访问权限才能获取图像。它只是充当代理,将图像提供给客户端,而无需将其本地保存在服务器上。
评论
0赞
Selvin
10/15/2023
请注意,这个聊天 GPT 答案......
评论