从远程桌面生成图像的 URL [已关闭]

URL generation of an image from remote desktop [closed]

提问人:AkshatSparrow 提问时间:10/14/2023 更新时间:10/14/2023 访问量:52

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

上个月关闭。

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

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

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

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

我也会在服务器的安全性上妥协。

C# 安全性 ASP.NET-WEB-API 服务器

评论


答:

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 答案......