Javascript 如何在ASP.NET中哈希图像源url

Javascript 如何在ASP.NET中哈希图像源url,javascript,asp.net,url,hash,Javascript,Asp.net,Url,Hash,您好,我想发送的图像源哈希url。如何才能做到这一点 代码: Image img_ = new Image(); img_.ImageUrl = "ShowImageInRuntime.aspx?FileName=C://Images//Image.jpg"; 我不想在page.Thx中看到我的本地路径。要获得您的帮助您需要在发送之前对路径进行加密和base 64编码,并在处理程序中执行相反的操作 另一个选项是维护映射XML,其中XML将包含路径和相应的标识符。在您的应用程

您好,我想发送的图像源哈希url。如何才能做到这一点

代码:

Image img_ = new Image();          
img_.ImageUrl = "ShowImageInRuntime.aspx?FileName=C://Images//Image.jpg";

我不想在page.Thx中看到我的本地路径。要获得您的帮助

您需要在发送之前对路径进行加密和base 64编码,并在处理程序中执行相反的操作

另一个选项是维护映射XML,其中XML将包含路径和相应的标识符。在您的应用程序中,获取带有路径的节点,并选择id,然后发送并将其附加到url。在处理程序中,执行相反的操作以获取路径

更新:添加示例代码

GUID为ID和相应文件名的XML文件。通过使用guid,人们无法轻易猜出随机ID

<?xml version="1.0" encoding="utf-8" ?>
<mappings>
  <map id="485D9075B9CA4d8d9DBA1AD9CD09FC13" fileName="c:\images\image1.jpg"/>
  <map id="475D4A22B1FA4eda8234007BD327D7B9" fileName="c:\images\image2.jpg"/>
  <map id="77623BF3094440c49AC65CEF76D1B824" fileName="c:\images\image3.jpg"/>
</mappings>

您需要将本地路径存储在某个位置。您的应用程序是否有可以存储路径并进行查找的存储,例如数据库?如果有一个小的固定设置,您可以在必要时将路径硬编码到应用程序中。否则,您必须提供加密路径并在ShowImageAtRuntime中解密它们(然后在使用之前验证!)尽管存在危险,但用户可能会构建自己的加密路径。只要用于加密的秘密保持安全,用户可能无法通过随机更改字符和进行有根据的猜测来创建有效的加密字符串。
public class ImageMapper
{
    private XDocument Document { get; set; }

    public ImageMapManager()
    {
        Document = XDocument.Load("Map.xml");
    }

    public string GetFileNameFromId(string id)
    {
        var result = from node in Document.Descendants("map")
                     where node.Attribute("id").Value.Equals(id, StringComparison.InvariantCultureIgnoreCase)
                     select node.Attribute("fileName").Value;
        return (result == null || result.Count() == 0) ? null : result.ElementAt(0);
    }
    public string GetIdFromFileName(string fileName)
    {
        var result = from node in Document.Descendants("map")
                     where node.Attribute("fileName").Value.Equals(fileName, StringComparison.InvariantCultureIgnoreCase)
                     select node.Attribute("id").Value;
        return (result == null || result.Count() == 0) ? null : result.ElementAt(0);

    }
}