asp.net后台怎么给URL加密。
hlf.DataNavigateUrlFormatString = "../show?aid={0};
如上,是给gridview的某列的一个链接的aid加密。
要用Base64 的加密方法。
望不吝指教。
[解决办法]
在绑定事件里面实现
hlf.DataNavigateUrlFormatString = "../show?aid=" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(DataBinder.Eval(e.Row.DataItem,"aid").ToString()));
- HTML code
<%@ Page Language="C#" EnableViewState="true" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser"); dataTable1.Columns.Add(new System.Data.DataColumn("Id", typeof(System.Int32))); dataTable1.Columns.Add(new System.Data.DataColumn("UserName", typeof(System.String))); Random r = new Random(); for (int i = 0; i < 8; i++) { dataTable1.Rows.Add(i, "名称" + i); } this.GridView1.DataSource = dataTable1; this.GridView1.DataBind(); } } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HyperLink h = e.Row.Cells[0].Controls[0] as HyperLink; h.NavigateUrl = "~/b.aspx?id=" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(DataBinder.Eval(e.Row.DataItem, "Id").ToString())); } }</script><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title>dddd</title></head><body> <form id="form1" runat="server"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_RowDataBound"> <Columns> <asp:HyperLinkField DataTextField="UserName" /> </Columns> </asp:GridView> </form></body></html>
[解决办法]
举一反三呀亲,真得喂到嘴里才能吃么?
- C# code
h.NavigateUrl = "~/b.aspx?id=" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(DataBinder.Eval(e.Row.DataItem, "Id").ToString()));