public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var checkuser = CheckUser.IsUserExist(context.UserName); if (checkuser != null) { var password = CryptoMethod.Hash(context.Password); var identity = new ClaimsIdentity(context.Options.AuthenticationType); if (context.UserName == checkuser.user_name && password == checkuser.Password) { if (checkuser.role_name == "admin" && checkuser.isEmailVerified == true) { identity.AddClaim(new Claim(ClaimTypes.Role, checkuser.role_name)); identity.AddClaim(new Claim(checkuser.user_name, checkuser.role_name)); identity.AddClaim(new Claim(ClaimTypes.Name, checkuser.first_name)); identity.AddClaim(new Claim(ClaimTypes.Sid, checkuser.user_id.ToString())); identity.AddClaim(new Claim(ClaimTypes.Email, checkuser.email_id)); try { context.Validated(identity); } catch (Exception e) { throw e; } } else if (checkuser.role_name == "customers" && checkuser.isEmailVerified == true) { identity.AddClaim(new Claim(ClaimTypes.Role, checkuser.role_name)); identity.AddClaim(new Claim(checkuser.user_name, checkuser.role_name)); identity.AddClaim(new Claim(ClaimTypes.Name, checkuser.first_name + " " + checkuser.last_name)); identity.AddClaim(new Claim(ClaimTypes.Sid, checkuser.user_id.ToString())); identity.AddClaim(new Claim(ClaimTypes.Email, checkuser.email_id)); context.Validated(identity); } } } else { context.SetError("Invalid Grant Check", "Provided username and password is incorrect"); } }
public string UserRegistration(UserViewModel model) { var emailExist = IsExistEmail(model.email_id); if (!emailExist) { var user = new UserViewModel() { user_name = model.user_name, first_name = model.first_name, last_name = model.last_name, email_id = model.email_id, //dateofbirth = model.dateofbirth, Password = CryptoMethod.Hash(model.Password), ActivationCode = Guid.NewGuid(), isEmailVerified = model.isEmailVerified }; string FriendList = "insert into users(user_name,first_name,last_name,email_id,password,isEmailVerified,ActivationCode) select '" + model.user_name + "','" + model.first_name + "','" + model.last_name + "','" + model.email_id + "','" + user.Password + "',0,'" + user.ActivationCode + "'"; var conn = db.ConnStrg(); int rowsAffected = conn.Execute(FriendList); if (rowsAffected > 0) { SendVerificationLinkEmail(user.email_id, user.ActivationCode.ToString(), scheme, host, port); return("Registration has been done,And Account activation link has been sent your email id:" + user.email_id); } else { return("Registration has been Faild"); } } // model.ActivationCode = Guid.NewGuid(); // model.IsEmailVerified = true; //TODO //verify.SendVerificationLinkEmail("ok", "ok"); return("ok"); }