Esempio n. 1
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var newuser = validationContext.ObjectInstance as Models.User;
            if (newuser == null)
            {
                return new ValidationResult("Model is Empty");
            }

            DataContext db = new DataContext();
            var user = db.Users.FirstOrDefault(u => u.Email == (string)value && u.ID != newuser.ID);
            if (user == null)
            {
                return ValidationResult.Success;
            }
            else
            {
                return new ValidationResult("Email Already Exists");
            }
        }
Esempio n. 2
0
        protected async override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(
            HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
        {

            if (id != null)
            {
                using (DataContext db = new DataContext())
                {
                    var user = db.Users.Find(id);
                    if (user.APIKey == key)
                    {
                        IList<Claim> claim = new List<Claim>
                    {
                        new Claim (ClaimTypes.Name, user.Email),
                        new Claim (ClaimTypes.Role, user.Role.ToString())
                    };
                        var identity = new ClaimsIdentity(claim, "APIKey");
                        var principal = new ClaimsPrincipal(identity);

                        Thread.CurrentPrincipal = principal;
                    }
                }
            }

            var response = await base.SendAsync(request, cancellationToken);

            var headers = response.Headers;

            if (headers.Contains("xcmps383authenticationid") && headers.Contains("xcmps383authenticationid"))
            {
                id = Int32.Parse(response.Headers.GetValues("xcmps383authenticationid").FirstOrDefault());
                key = response.Headers.GetValues("xcmps383authenticationkey").FirstOrDefault();
            }

            return response;
        }