formsauthentication.setauthcookieを使用して、暗号化された文字列を保存します
-
25-10-2019 - |
質問
私は言うことから始めます、多分これはやり過ぎです。
ログインルーチン中に、formsauthentication.setauthcookieを使用する前に、ユーザーのログインIDを暗号化します。
問題は、暗号化された文字列にエスケープキャラクターを持つことになった場合、保存された文字列がエスケープキャラクターに切り捨てられることです。
ユーザーのログインIDを暗号化しようとしているだけですか?
または、この問題を回避する方法はありますか?
これは、切り捨てられるサンプル文字列です:<< *€ƒkı‹¯Þ
解決
ユーザーIDを暗号化するときは、使用する必要があります base64エンコーディング 暗号化されたデータには有効な文字のみが含まれるように(アルファニューム、 +, /, =).
あなたはおそらくこれを役立つと思うでしょう: convert.tobase64string(byte [])
例:
string userId = "Hello";
byte[] encryptedData = GetEncryptedBytes(userId);
string encodedUserId = Convert.ToBase64String(encryptedData);
// encodedUserId is "SGVsbG8="
FormsAuthentication.SetAuthCookie(encryptedUserId);
そして、デコードは逆です:
string encodedUserId = "SGVsbG8=";
byte[] encryptedData = Convert.FromBase64String(encodedUserId);
string userId = GetDecryptedString(encryptedData);
所属していません StackOverflow