Ich versuche, einige userData zu verschlüsseln, um meine eigenen benutzerdefinierten IPrincipal und IIdentity Objekte mit Forms-Authentifizierung zu erstellen - Ich habe ein Objekt serialisiert, das meinen angemeldeten Benutzer zu Json und erstellt Ticket mein FormsAuthentication wie so:System.Web.Security.FormsAuthentication.Encrypt gibt null zurück
string user_item = GetJsonOfLoggedinUser();/*get JSON representation of my logged in user*/
System.Web.Security.FormsAuthenticationTicket ticket =
new System.Web.Security.FormsAuthenticationTicket(1,
WAM.Utilities.SessionHelper.LoggedInEmployee.F_NAME + " "
+ WAM.Utilities.SessionHelper.LoggedInEmployee.L_NAME,
DateTime.Now, DateTime.Now.AddMinutes(30), false, user_item);
string encrypted_ticket = System.Web.Security.FormsAuthentication.Encrypt(ticket);
HttpCookie auth_cookie =
new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName, encrypted_ticket);
Response.Cookies.Add(auth_cookie);
jedoch die Zeichenfolge encrypted_ticket
ist immer null
. Gibt es eine Grenze für die Länge der user_item
Zeichenfolge?
Dank Mustafa
irgendwelche Fortschritte damit? –
Wenn die Eigenschaft Name des Tickets null ist, gibt die Funktion Encrypt null zurück. Das 4-KB-Limit gilt für den Cookie und nicht für den verschlüsselten Wert. Wenn der verschlüsselte Wert größer als 4 KB ist, schlägt der Versuch fehl, einen Cookie hinzuzufügen. – Mayo
dasselbe Problem mit mir, aber mit mir @Mayo Antwort behoben –