0

我尝试通过以下类加密我的查询字符串:

加密查询字符串。

问题是:

我的链接在一个gridview,我不知道如何通过eval表达式以正确的方式使用加密方法。

这是我尝试过的:

我的 .aspx

 <ItemTemplate>
 <a id="btnShowPopup6" runat="server" class="thickbox" href='<%#"PageDetail.aspx?QueryStringModule.Encrypt(code="+Eval("t_code")+"&serial="+Eval("t_Serial")+"&year="+Eval("t_Year")+"&AR=1"+"&TBiframe=true&height=600&width=950)"%>'>
  <asp:Image ID="Image43" runat="server" ToolTip="confirm" ImageUrl="Images/ok-blue.png"
   Width="20" Height="20" />
 </ItemTemplate>
4

2 回答 2

1

在方法后面创建一个代码并传递您要加密的数据..它返回一个链接

调用 ItemTemplate 中的方法

方法可能是这样的……

protected string getCode(string t_code, string t_Serial, string t_Year)
    {
        return "<a href=PageDetail.aspx?" + QueryStringModule.Encrypt("code=" + t_code + "&serial=" + t_Serial + "&year=" + t_Year + "&AR=1" + "&TBiframe=true&height=600&width=950") + ">code</a>";
    }

现在像下面这样使用它

<asp:TemplateField HeaderText="YOUR LINK NAME">
                <ItemTemplate>
                <%# getCode(Eval("t_code").ToString(), Eval("t_Serial").ToString(), Eval("t_Year").ToString()) %>
                </ItemTemplate>
                </asp:TemplateField>
于 2012-10-23T18:53:33.203 回答
1

将您的 href= 更改为以下内容,它应该可以工作。

<%#"PageDetail.aspx" + QueryStringModule.Encrypt("code="+Eval("t_code")+"&serial="+Eval("t_Serial")+"&year="+Eval("t_Year")+"&AR=1"+"&TBiframe=true&height=600&width=950")%>

顺便说一句,不要将您的加密密钥重新用于此查询字符串模块以外的任何内容。不幸的是,httpmodule 所做的是创建一个“加密预言机”,您可以提供任何明文,它会返回给您一个用您的密钥加密的有效密文。因此,例如,如果您访问 pagedetail.aspx?myname=moe,它将为我加密 myname=moe 并给我一个已用您的密钥加密的值。如果您在代码的其他部分使用此值进行某种类型的验证或信息隐藏,我可以随意生成加密字符串。

于 2012-11-01T06:09:14.723 回答