//loin (username,password) //token public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { if (context.UserName == null || context.Password == null) { context.SetError("name or password required"); } else { //call find function from authentication bussiness layer AuthBl auth = new AuthBl(); IdentityUser user = auth.find(context.UserName, context.Password); //not find if (user == null) { context.SetError("name or password required"); } //finded else { //create token ClaimsIdentity claims = new ClaimsIdentity(context.Options.AuthenticationType); claims.AddClaim(new Claim("Name", user.UserName)); claims.AddClaim(new Claim("Email", user.Email)); claims.AddClaim(new Claim("LoggedOn", DateTime.Now.ToString())); // claims.AddClaim(new Claim("Role", "Admin")); context.Validated(claims); } } }
public IHttpActionResult Register(UserDto userDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } AuthBl Authb = new AuthBl(); IdentityResult result = Authb.Create(userDto.Name, userDto.Email, userDto.Password); if (result.Succeeded) { return(Created("http://localhost:51823/api/order", "Data saved")); } return(BadRequest(result.Errors.FirstOrDefault())); }