public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { eBuyContext db = new eBuyContext(); var user = db.UserDetails.Where(d => d.UserEmail == context.UserName).FirstOrDefault(); if (user != null && !string.IsNullOrEmpty(user.UserEmail) && !string.IsNullOrEmpty(user.UserPassword)) { var identity = new ClaimsIdentity(context.Options.AuthenticationType); if (context.UserName == user.UserEmail && context.Password == user.UserPassword) { identity.AddClaim(new Claim(ClaimTypes.Role, user.UserRole)); identity.AddClaim(new Claim("username", user.UserEmail)); identity.AddClaim(new Claim(ClaimTypes.Name, user.UserName)); var uid = new Dictionary <string, string>() { { "userid", user.UserId.ToString() }, { "role", user.UserRole.ToString() } }; var ticket = new AuthenticationTicket(identity, new AuthenticationProperties(uid)); context.Validated(ticket); } else { context.SetError("invalid_grant", "Username and Password Combination Provided is Incorrect!"); return; } } }