Question

I have simple login form without registration, because I create Admin login, who create new users. So admin login, and create new user, which can then login with that specific username and password.

So I create this controller:

    public ActionResult CreateNew(Models.Users user)
    {

        if (ModelState.IsValid)
        {
            try
            {
                using (var dataU = new userDbEntities())
                {
                    var crypto = new SimpleCrypto.PBKDF2();
                    var encrpPass = crypto.Compute(user.Password);
                    var sysUser = dataU.UsersTables.Create();

                    sysUser.username = user.Username;
                    sysUser.password = encrpPass;
                    sysUser.passwordSalt = crypto.Salt;
                    sysUser.TimeZoneId = user.TimeZoneName;
                    sysUser.Customer = user.Customer;

                    dataU.UsersTables.Add(sysUser);
                    dataU.SaveChanges();
                    return RedirectToAction("Registration", "LoginAdmin");
                }
            }
            catch (Exception ex)
            {
                string error = ex.Message;
            }

        }

        return View(user);
    }

Problem is, that I can create users with same username (this is not ok!), so how to check if user with that name exists and returns, this username already exists...

thanks...

Was it helpful?

Solution

count the number of user that has the same username and add the user if the count is 0.

for example

var count = dataU.UsersTables.Count(u=>u.UserName == usernameyouwanttocheck);
if(count==0)
{
  //add user
}
else
{
  //alert user saying user exists
}

if I were you I would make repository and create a function that checks if the user exists or not and call that function from controller.

OTHER TIPS

By help of Biplov13 I create this, which is working:

public ActionResult CreateNew(Models.Users user)
        {

            if (ModelState.IsValid)
            {
                try
                {
                    using (var dataU = new userDbEntities())
                    {

                        {
                            var crypto = new SimpleCrypto.PBKDF2();
                            var encrpPass = crypto.Compute(user.Password);
                            var sysUser = dataU.UsersTables.Create();

                            sysUser.username = user.Username;
                            sysUser.password = encrpPass;
                            sysUser.passwordSalt = crypto.Salt;
                            sysUser.TimeZoneId = user.TimeZoneName;
                            sysUser.Customer = user.Customer;

                            var count = dataU.UsersTables.Count(u => u.username == user.Username);
                            if (count == 0)
                            {
                                dataU.UsersTables.Add(sysUser);
                                dataU.SaveChanges();
                                return RedirectToAction("Registracija", "LoginAdmin");
                            }
                            else
                            {
                                // something to do if user exist...
                            }


                        }

                    }
                }
                catch (Exception ex)
                {
                    string error = ex.Message;
                }

            }

            return View(user);
        }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top