Verwenden von formsAuthentication.setAuthcookie zum Speichern einer verschlüsselten Zeichenfolge

StackOverflow https://stackoverflow.com/questions/8316279

  •  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œ >>

War es hilfreich?

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top