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");
            }
        }
Esempio n. 2
0
        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");
        }