Advertisement
Guest User

Untitled

a guest
Mar 1st, 2017
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. public class ResourceOwnerPasswordValidator : IResourceOwnerPasswordValidator
  2. {
  3. public Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
  4. {
  5. //dapper.net for getting user from DB
  6. using (IDbConnection db = new SqlConnection("Data Source=.;Initial Catalog=TestDB;Integrated Security=True"))
  7. {
  8. var user = db.Query<User>("SELECT * FROM Registration WHERE Username=@Username AND Password=@Password",
  9. new { Username = context.UserName, Password = context.Password }).SingleOrDefault();
  10.  
  11. if (user == null)
  12. {
  13. context.Result = new GrantValidationResult(TokenErrors.InvalidRequest, "Username or password is incorrect");
  14. return Task.FromResult(0);
  15. }
  16.  
  17. #region
  18. var users = new List<InMemoryUser>
  19. {
  20. new InMemoryUser
  21. {
  22. Subject = "818727",
  23. Username = user.Username,
  24. Password = user.Password,
  25. Claims = new Claim[]
  26. {
  27. new Claim(JwtClaimTypes.Name, user.FirstName),
  28. new Claim(JwtClaimTypes.GivenName, user.FirstName),
  29. new Claim(JwtClaimTypes.FamilyName, user.LastName),
  30. new Claim(JwtClaimTypes.Email, user.Email)
  31. }
  32. }
  33. };
  34. #endregion
  35.  
  36. context.Result = new GrantValidationResult(user.Id.ToString(), "Password", users[0].Claims);
  37.  
  38. return Task.FromResult(0);
  39. }
  40. }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement