protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_userManager != null)
                {
                    _userManager.Dispose();
                    _userManager = null;
                }

                if (_signInManager != null)
                {
                    _signInManager.Dispose();
                    _signInManager = null;
                }
            }

            base.Dispose(disposing);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Login(Users user)
        {
            //χρησιμοποιώντας το AspNet.Identity της Microsoft, ελέγχεται στη βάση δεδομένων εάν υπάρχει ο χρήστης και αν το ΑΜ΄και ο κωδικός ταιριάζουν

            var userManager   = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext()));
            var signinmanager = new UsersSignInManager(userManager, AuthenticationManager);

            var loginresult = await signinmanager.PasswordSignInAsync(user.UserName, user.Password, true, false);

            //εάν η σύνδεση είναι επιτυχής, αποθηκευουμε τον χρήστη που συνδέθηκε και μεταφερόμαστε στην παρακάτω μέθοδο που ελέγχουμε την ιδίότητά του για να ανακατευθυνθεί στη σωστή σελίδα

            if (loginresult == SignInStatus.Success)
            {
                var userId       = signinmanager.AuthenticationManager.AuthenticationResponseGrant.Identity.GetUserId <int>();
                var loggedInUser = await userManager.FindByIdAsync(userId);

                return(redirectLoggedInUser(loggedInUser));
            }

            //εάν τα στοιχεία είναι λάθος, ο χρήστης ανακατευθύνεται στην Index για να προσπαθήσει να κάνει login ξανά, λαμβάνοτας αντίστοιχο μήνυμα λάθους μέσω javascript alert

            return(RedirectToAction("Index", "Home", new { message = "Το AM ή ο κωδικός πρόσβασής σας είναι λάθος. Ελέγξτε τα στοιχεία εισόδου." }));
        }
Exemplo n.º 3
0
 public RolesController(HMSUserManager userManager, UsersSignInManager signInManager, HmsRoleManeger roleManager)
 {
     UserManager   = userManager;
     SignInManager = signInManager;
     RoleManager   = roleManager;
 }
Exemplo n.º 4
0
        public async Task <ActionResult> Registration([Bind(Include = "UserName,Password,ConfirmPassword,Name,Surname,Email,Role")] Users user)
        {
            var userManager = new UnipiUsersManager(new CustomUserStore(new UnipiLabsDbContext()));



            if (ModelState.IsValid)
            {
                bool alreadyExists = db.Users.Any(m => m.UserName == user.UserName);

                if (alreadyExists == true)
                {
                    return(RedirectToAction("Registration", "UsersRegistration", new { message = "Ο αριθμός μητρώου υπάρχει ήδη. Προσπαθήστε ξανά." }));
                }
                //έλεγχος γα το εάν ο χρήστης δίνει τη σωστή του ιδιότητα κατά την εγγραφή του
                string firstLetter = user.UserName.Substring(0, 1);
                if (firstLetter == "P" && user.Role == "Professor")
                {
                    var result = await userManager.CreateAsync(user, user.Password);

                    if (result.Succeeded)
                    {
                        db.SaveChanges();
                        // Log the user in
                        var signInManager = new UsersSignInManager(userManager, AuthenticationManager);
                        await signInManager.SignInAsync(user, true, true);

                        return(RedirectToAction("MySubjectsProfessor", "Professors"));
                    }
                }
                else if (firstLetter == "S" && user.Role == "Student")
                {
                    var result = await userManager.CreateAsync(user, user.Password);

                    if (result.Succeeded)
                    {
                        db.SaveChanges();
                        // Log the user in
                        var signInManager = new UsersSignInManager(userManager, AuthenticationManager);
                        await signInManager.SignInAsync(user, true, true);

                        return(RedirectToAction("MySubjectsStudent", "Students"));
                    }
                }
                else if (firstLetter == "L" && user.Role == "LabAdmin")
                {
                    var result = await userManager.CreateAsync(user, user.Password);

                    if (result.Succeeded)
                    {
                        db.SaveChanges();
                        // Log the user in
                        var signInManager = new UsersSignInManager(userManager, AuthenticationManager);
                        await signInManager.SignInAsync(user, true, true);

                        return(RedirectToAction("ViewLabAvailability", "LabAdmin"));
                    }
                }
                else
                {
                    return(RedirectToAction("Registration", "UsersRegistration", new { message = "Η ιδιότητά σας ή ο ΑΜ σας είναι λάθος. Προσπαθήστε ξανά." }));
                }
            }
            return(View(user));
        }
Exemplo n.º 5
0
 public ManageController(HMSUserManager userManager, UsersSignInManager signInManager)
 {
     UserManager   = userManager;
     SignInManager = signInManager;
 }