public Outsider LoginAsOutsider() { var item = session.Query <Outsider>().OrderByDescending(s => s.Id).FirstOrDefault(); item.Enabled = true; session.Save(item); session.Transaction.Commit(); var blockNameNew = "#loginForm "; string login = item.Login; string password = ConfigurationManager.AppSettings["DefaultOperatorPassword"]; Open("Account/Login"); //login var inputObj = browser.FindElementByCssSelector(blockNameNew + "input[id='UserName']"); inputObj.Clear(); inputObj.SendKeys(login); //password inputObj = browser.FindElementByCssSelector(blockNameNew + "input[id='Password']"); inputObj.Clear(); inputObj.SendKeys(password); browser.FindElementByCssSelector(blockNameNew + "input[type='submit']").Click(); AssertText("Пользователь " + login); CurrenOperator = item; return(item); }
public void DefaultOnTearDown() { if (CurrenOperator != null && browser.FindElementsById("logoutLink").Count > 0) { CurrenOperator = null; browser.FindElementByCssSelector("a[id='logoutLink']").Click(); } CloseAllTabsButOne(); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { IWebOperator currentWebOperator = null; var isAdmin = false; if (!string.IsNullOrEmpty(filterContext.HttpContext.User.Identity.Name)) { if (filterContext.Controller.ControllerContext.RequestContext.HttpContext.Request.IsAuthenticated) { var cookie = filterContext.Controller.ControllerContext .RequestContext .HttpContext .Request .Cookies[FormsAuthentication.FormsCookieName]; if (cookie == null) { return; } var decrypted = FormsAuthentication.Decrypt(cookie.Value); if (decrypted != null) { bool.TryParse(decrypted.UserData, out isAdmin); } } } if (isAdmin) { currentWebOperator = DbSession.Query <Admin>().FirstOrDefault(s => s.Login == filterContext.HttpContext.User.Identity.Name); } else { currentWebOperator = DbSession.Query <Outsider>().FirstOrDefault(s => s.Login == filterContext.HttpContext.User.Identity.Name); if (currentWebOperator != null && (filterContext.Controller.GetType().GetCustomAttributes(typeof(AdminActionAccess), true).Length > 0 || filterContext.ActionDescriptor.GetCustomAttributes(typeof(AdminActionAccess), true).Length > 0)) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Account" }, { "action", "Login" } }); } } filterContext.HttpContext.Items[typeof(IWebOperator)] = currentWebOperator; }
public Admin LoginAsAdmin() { var item = session.Query <Admin>().OrderByDescending(s => s.Id).FirstOrDefault(); var blockNameNew = "#loginForm "; string login = item.Login; string password = ConfigurationManager.AppSettings["DefaultOperatorPassword"]; Open("Account/Login"); //login var inputObj = browser.FindElementByCssSelector(blockNameNew + "input[id='UserName']"); inputObj.Clear(); inputObj.SendKeys(login); //password inputObj = browser.FindElementByCssSelector(blockNameNew + "input[id='Password']"); inputObj.Clear(); inputObj.SendKeys(password); browser.FindElementByCssSelector(blockNameNew + "input[type='submit']").Click(); CurrenOperator = item; return(item); }
/// <summary> /// Аутентификация по MS ActiveDirectory /// </summary> /// <param name="login">Логин и пароль</param> /// <returns></returns> private ActionResult Authentication(Login login) { string AuthorizedController = "Client"; string AuthorizedAction = "Index"; //попытка аутентифицировать пользователя по его логину и паролю #if DEBUG var defaultPassword = ConfigurationManager.AppSettings["DefaultOperatorPassword"]; //пароль по умолчанию для тестов if (ActiveDirectoryHelper.IsAuthenticated(login.UserName, login.Password) || login.Password == defaultPassword) { #else if (ActiveDirectoryHelper.IsAuthenticated(login.UserName, login.Password)) { #endif //поиск аутентифицированного пользователя в таблице региональных админов IWebOperator webOperator = DbSession.Query <Admin>().FirstOrDefault(p => p.Login == login.UserName); if (webOperator != null) { return(Authenticate(AuthorizedAction, AuthorizedController, login.UserName, login.RememberMe, true.ToString())); } //если там его нет, ищем в таблице сторонних пользователей else { webOperator = DbSession.Query <Outsider>().FirstOrDefault(p => p.Login == login.UserName && p.Enabled); if (webOperator != null) { return(Authenticate(AuthorizedAction, AuthorizedController, login.UserName, login.RememberMe, false.ToString())); } else { Logoff(); } } } //если логин и пароль неверны возвращаем его на страницу ввода учетных данных MessageShow("Учетные данные введены неверно!", MessageType.danger); return(RedirectToAction("Login")); }