-1

EDIT 1: おそらく、以前はあまり明確ではありませんでした。次のシナリオについて、最適な標準的な方法を知りたいです。

.NET 4 Web アプリケーションを使用しており、さまざまな理由で顧客に一意のリンクを送信する必要があります (パスワードのリセット、招待状、アカウントの確認など)。

通常、リンク構造はmysite/some-action?key=some-unique-value になります。

「一意の値」部分を生成するにはどうすればよいですか? 方法が何であれ、私の URL を壊してはなりません。

SO に関するいくつかの質問を見つけましたが、それは私のニーズに近づいていましたが、完全には解決できませんでした。
また、この種の機能を実装するためのより良い/標準的な方法があれば教えてください。ありがとう。

4

3 に答える 3

1

バイト配列を取得すると仮定すると、次を使用して16進数に変換できます。

BitConverter.ToString(bytes);

暗号化の代わりにSHA1などのハッシュ アルゴリズムを使用することもできます。

于 2013-05-19T08:54:26.097 に答える
1

クエリ文字列パラメーターの暗号化を試みることができます。ここに良い説明があります。(ソース

于 2013-05-19T09:01:41.643 に答える
0

エンコードには server.UrlEncode を使用し、デコードには Server.UrlDecode を使用します。

Dim Url As String = "something.aspx?" 
Url & = "key = " & Server.UrlEncode("someUniqueValue")

編集: サーバーで URL 文字列をデコードする必要はありません。asp.net によって自動的にデコードされるため、2 回目のデコードを行うと、特に元の URL にスペースにデコードされる「+」が含まれている場合に問題が発生する可能性があります。 .

于 2013-05-19T09:57:35.943 に答える