コード例 #1
0
 //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);
         }
     }
 }
コード例 #2
0
        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()));
        }