Verwenden von formsAuthentication.setAuthcookie zum Speichern einer verschlüsselten Zeichenfolge
-
25-10-2019 - |
Frage
Ich werde zunächst sagen, vielleicht ist das Overkill.
Während meiner Anmelderoutine verschlüsse ich die Anmelde -ID des Benutzers, bevor ich FormsAuthentication.setAuthcookie verwende.
Das Problem ist, dass, wenn die verschlüsselte Zeichenfolge Fluchtzeichen hat, die Zeichenfolge, die gerettet wird, mit den Escape -Charakteren verkürzt wird.
Sollte ich einfach nicht versuchen, die Anmelde -ID des Benutzers zu verschlüsseln?
Oder gibt es eine Möglichkeit, dieses Problem zu umgehen?
Hier ist eine Stichprobenzeichenfolge, die verkürzt wird: << *€ ƒkõ ‹¯Þ 0ý´gv " Þeaôs0n × td ... ™ s € 7œ >>
Lösung
Wenn Sie die Benutzer -ID verschlüsseln, sollten Sie verwenden Base64 Codierung so dass die verschlüsselten Daten nur gültige Zeichen enthalten (alphanumerisch, +, /, =).
Sie würden dies wahrscheinlich hilfreich finden: Convert.Tobase64String (Byte [])
Beispiel:
string userId = "Hello";
byte[] encryptedData = GetEncryptedBytes(userId);
string encodedUserId = Convert.ToBase64String(encryptedData);
// encodedUserId is "SGVsbG8="
FormsAuthentication.SetAuthCookie(encryptedUserId);
Und Dekodierung ist das Gegenteil:
string encodedUserId = "SGVsbG8=";
byte[] encryptedData = Convert.FromBase64String(encodedUserId);
string userId = GetDecryptedString(encryptedData);