예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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());
        }