/// <summary> /// Create serialized string for storing in a cookie /// </summary> /// <returns>String representation of identity</returns> public string ToJson() { string returnValue = string.Empty; IdentityRepresentationViewModel representation = new IdentityRepresentationViewModel() { IsAuthenticated = this.IsAuthenticated, MensagemLogin = this.MensagemLogin, UsuarioId = this.UsuarioId, Name = this.Name, Roles = string.Join("|", this.Roles), Token = this.Token }; DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(IdentityRepresentationViewModel)); using (MemoryStream stream = new MemoryStream()) { jsonSerializer.WriteObject(stream, representation); stream.Flush(); byte[] json = stream.ToArray(); returnValue = Encoding.UTF8.GetString(json, 0, json.Length); } return(returnValue); }
/// <summary> /// Create identity from a cookie data /// </summary> /// <param name="cookieString">String stored in cookie, created via ToJson method</param> /// <returns>Instance of identity</returns> public static ICustomIdentity FromJson(string cookieString) { if (!string.IsNullOrEmpty(cookieString)) { IdentityRepresentationViewModel serializedIdentity = null; using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(cookieString))) { DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(IdentityRepresentationViewModel)); serializedIdentity = jsonSerializer.ReadObject(stream) as IdentityRepresentationViewModel; } CustomIdentity identity = new CustomIdentity() { IsAuthenticated = serializedIdentity.IsAuthenticated, MensagemLogin = serializedIdentity.MensagemLogin, Name = serializedIdentity.Name, Roles = serializedIdentity.Roles.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries), Token = serializedIdentity.Token }; return(identity); } return(new CustomIdentity()); }