using Bootstrap.Admin.Models; using Bootstrap.Security; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Security.Claims; using System.Threading.Tasks; namespace Bootstrap.Admin.Controllers { /// /// Account controller. /// [AllowAnonymous] public class AccountController : Controller { /// /// Login the specified userName, password and remember. /// /// The login. /// User name. /// Password. /// Remember. public async Task Login(string userName, string password, string remember) { if (!string.IsNullOrEmpty(userName) && BootstrapUser.Authenticate(userName, password)) { var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme); identity.AddClaim(new Claim(ClaimTypes.Name, userName)); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity), new AuthenticationProperties() { IsPersistent = remember == "true" }); // redirect origin url var originUrl = Request.Query[CookieAuthenticationDefaults.ReturnUrlParameter]; return Redirect(originUrl.Count == 1 ? originUrl[0] : "~/"); } return View("Login", new ModelBase()); } /// /// Logout this instance. /// /// The logout. public async Task Logout() { await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); return Redirect("~" + CookieAuthenticationDefaults.LoginPath); } /// /// Accesses the denied. /// /// The denied. public ActionResult AccessDenied() { return View(); } /// /// /// /// public ActionResult Mobile() { return View(); } } }