1

目前我正在创建一个在线考试,我需要通过 URL 将一点点信息从一个页面传递到另一个页面。

目前我有这个:

Response.Redirect("Home.aspx?uName=" + txtUserName.Text);

进入主页,其中包含用户用户名,然后被拾取并加载信息。但我想要做的是如何加密 UserName,这样用户就无法玩弄它,也无法猜测它是什么。有没有办法做到这一点?

4

2 回答 2

3

不要使用那个。

改为使用Session

如果你真的需要通过 URL ,那么加密(密码加密)数据并用Base64(编码为可传输字符)进行编码(不要忘记加密“+”号,因为 Base 64 确实使用它,但浏览器认为它是一个空格.. .)

于 2012-04-22T10:27:26.127 回答
2

一个简单的解决方案是从这个问题中得到答案:加密和解密字符串并执行以下操作:

Response.Redirect("Home.aspx?uName=" + Server.UrlEncode(Crypto.EncryptStringAES(txtUserName.Text, "YourEncryptionKey"))

然后在您的下一页上,只需反转该过程即可将值取回,如下所示:

var username = Crypto.EncryptStringAES(Request["uName"], "YourEncryptionKey")

但我会问,你为什么要通过 url 传递用户名?使用会员提供商并简单地让用户登录不是更好吗?然后,您可以将任何相关信息存储在与该用户相关的数据库中。

于 2012-04-22T10:28:29.730 回答