从远程桌面生成图像的 URL

问题描述 投票:0回答:1

我在受保护的服务器上有一个图像。

是否可以在 ASP.NET WEB API 中使用 C# 生成该图像的 URL。

我不想先将该图像保存在不同的位置,然后生成它的 URL。

如果可能的话,我是否需要对我的服务器设置进行任何更改?

我也会损害服务器的安全性。

c# security asp.net-web-api server
1个回答
0
投票

为了在 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 类是一个自定义实现,用于将图像流式传输到客户端。您可以根据需要调整代码来处理不同的图像类型、错误处理和身份验证。

请注意,这种方法不会损害安全服务器的安全性,因为您仍然需要进行身份验证并拥有适当的访问权限才能获取图像。它只是充当代理,将图像提供给客户端,而不将其保存在本地服务器上。

© www.soinside.com 2019 - 2024. All rights reserved.