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); }
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 ή ο κωδικός πρόσβασής σας είναι λάθος. Ελέγξτε τα στοιχεία εισόδου." })); }
public RolesController(HMSUserManager userManager, UsersSignInManager signInManager, HmsRoleManeger roleManager) { UserManager = userManager; SignInManager = signInManager; RoleManager = roleManager; }
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)); }
public ManageController(HMSUserManager userManager, UsersSignInManager signInManager) { UserManager = userManager; SignInManager = signInManager; }