1

現在、オンライン試験を作成しており、URL を介してあるページから別のページにわずかな情報を渡す必要があります。

現時点で私はこれを持っています:

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

これは、ユーザーの UserName が含まれるホームページに移動し、それが選択されて情報が読み込まれます。しかし、私がやりたいことは、ユーザーがそれをいじったり、それが何であるかを推測したりできないように、その 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 に答える