public IHttpActionResult GetUser(int id) { CEMUser userData = this.userService.Select(id); UserModel userModel = this.Mapper.Map <UserModel>(userData); return(Ok(userModel)); }
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { string connectionString = emos1ClientService.GetConnectionString(context.ClientId); userRepository.GetContext().SetConnectionString(connectionString); CEMUser user = userRepository.SelectBy(x => x.UserName == context.UserName && x.Password == context.Password).FirstOrDefault(); // ApplicationSignInManager signInManager = this.GetApplicationSignInManager(context.OwinContext); // ApplicationUser user = signInManager.UserManager.FindAsync(context.UserName, context.Password).Result; if (user != null) { // ClaimsIdentity userIdentity = signInManager.UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ExternalBearer).Result; ClaimsIdentity userIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, user.UserName), }, "OWINAuthenticationTypes", ClaimTypes.Name, ClaimTypes.Role); userIdentity.AddClaim(new Claim(ClaimTypes.Role, "guest")); userIdentity.AddClaim(new Claim(ClaimTypes.GivenName, $"{user.FirstName} {user.LastName}")); userIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.UserName)); userIdentity.AddClaim(new Claim(ClaimTypes.Sid, user.ID.ToString())); //OK to store userID here? userIdentity.AddClaim(new Claim("FullName", $"{user.FirstName} {user.LastName}")); AuthenticationProperties authenticationProperties = new AuthenticationProperties(new Dictionary <string, string> { { "client_id", context.ClientId } }); AuthenticationTicket authenticationTicket = new AuthenticationTicket(userIdentity, authenticationProperties); context.Validated(authenticationTicket); // Setting LastLoginDate // user.LastLoginDate = DateTime.UtcNow; //signInManager.UserManager.Update(user); } else { context.SetError("invalid_grant", "The username or password is incorect"); } return(Task.FromResult(0)); }