c#
  • asp.net
  • gridview
  • encryption
  • query-string
  • 2012-10-23 37 views 0 likes 
    0

    我试图通过下面的类来加密我的查询字符串:加密模板字段中嵌入的查询字符串?

    Encrypt Query String .

    的问题是:

    我的链接是在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> 
    
    +0

    你可以显示为href生成的HTML是什么? –

    回答

    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的作用是创建一个“加密oracle”,您可以提供任何明文,并且它会返回给您一个用您的密钥加密的有效密文。因此,例如,如果你去pagedetail.aspx?myname = moe,它会为我加密myname = moe,并给我一个用你的密钥加密的值。如果您在代码的其他部分使用此值进行某种类型的验证或信息隐藏,则可以随意生成加密字符串。

    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> 
    
    相关问题