示例#1
0
        public T ConvertTo <T>() where T : new()
        {
            if (this.Request != null)
            {
                //enforce UserId in the target object before serialization
                switch (this.Mode)
                {
                case AuthenticationMode.UserCookie:
                    if (!this.Request.ContainsKey("UserId"))
                    {
                        this.Request.Add("UserId", IDConverter.Encode(this.UserId));
                    }
                    else
                    {
                        this.Request["UserId"] = IDConverter.Encode(this.UserId);
                    }
                    break;

                case AuthenticationMode.API:
                    if (this.Request.ContainsKey("UserId"))
                    {
                        this.UserId = IDConverter.Decode(this.Request["UserId"].ToString());
                    }
                    break;
                }

                return(this.Request.ToObject <T>());
            }

            return(new T());
        }
示例#2
0
        public static string BuildEmailVerificationString(Guid userId, string verificationCode)
        {
            var s = string.Join("|",
                                DateTime.UtcNow.Ticks,
                                IDConverter.Encode(userId),
                                verificationCode,
                                DateTime.UtcNow.AddYears(-20).Ticks);

            s = Encrypt(s);

            return(s.Replace("/", "-").Replace("+", "_"));
        }
示例#3
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) => writer.WriteValue(IDConverter.Encode((Guid)value));
示例#4
0
 public static string Encode(this Guid id) => IDConverter.Encode(id);