public Dictionary<string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary<string, object>(); string error = ""; if (requestParameters.ContainsKey("username") && requestParameters.ContainsKey("password")) { string username = requestParameters["username"].ToString(); string password = requestParameters["password"].ToString(); ILoginService loginService = webInterface.Registry.RequestModuleInterface<ILoginService>(); if (loginService.VerifyClient(UUID.Zero, username, "UserAccount", password)) { UUID sessionID = UUID.Random(); UserAccount account = webInterface.Registry.RequestModuleInterface<IUserAccountService>().GetUserAccount(null, username); Authenticator.AddAuthentication(sessionID, account); if (account.UserLevel > 0) Authenticator.AddAdminAuthentication(sessionID, account); httpResponse.AddCookie(new System.Web.HttpCookie("SessionID", sessionID.ToString()) { Expires = DateTime.MinValue, Path = "" }); response = "<h3>Successfully logged in, redirecting to main page</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 0);" + "</script>"; } else response = "<h3>Failed to verify user name and password</h3>"; return null; } vars.Add("ErrorMessage", error); vars.Add("Login", translator.GetTranslatedString("Login")); vars.Add("UserNameText", translator.GetTranslatedString("UserName")); vars.Add("PasswordText", translator.GetTranslatedString("Password")); vars.Add("ForgotPassword", translator.GetTranslatedString("ForgotPassword")); vars.Add("Submit", translator.GetTranslatedString("Submit")); return vars; }
public Dictionary<string, object> Fill(WebInterface webInterface, string filename, Hashtable query, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, ITranslator translator) { var vars = new Dictionary<string, object>(); string error = ""; if (requestParameters.ContainsKey("username") && requestParameters.ContainsKey("password")) { string username = requestParameters["username"].ToString(); string password = requestParameters["password"].ToString(); ILoginService loginService = webInterface.Registry.RequestModuleInterface<ILoginService>(); if (loginService.VerifyClient(UUID.Zero, username, "UserAccount", password, UUID.Zero)) { UUID sessionID = UUID.Random(); UserAccount account = webInterface.Registry.RequestModuleInterface<IUserAccountService>().GetUserAccount(UUID.Zero, username); Authenticator.AddAuthentication(sessionID, account.PrincipalID); if (account.UserLevel > 0) Authenticator.AddAdminAuthentication(sessionID, account.PrincipalID); httpResponse.AddCookie(new System.Web.HttpCookie("SessionID", sessionID.ToString()) { Expires = DateTime.MinValue, Path = "" }); httpResponse.StatusCode = (int)HttpStatusCode.Redirect; httpResponse.AddHeader("Location", "/welcomescreen/index.html"); return vars; } else error = "Failed to verify user name and password"; } vars.Add("ErrorMessage", error); vars.Add("Login", translator.GetTranslatedString("Login")); vars.Add("UserNameText", translator.GetTranslatedString("UserName")); vars.Add("PasswordText", translator.GetTranslatedString("Password")); vars.Add("ForgotPassword", translator.GetTranslatedString("ForgotPassword")); vars.Add("Submit", translator.GetTranslatedString("Submit")); return vars; }
protected Dictionary<string, object> AddVarsForPage(string filename, string parentFileName, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, out string response) { response = null; Dictionary<string, object> vars = new Dictionary<string, object>(); IWebInterfacePage page = GetPage(filename); if (page != null) { ITranslator translator = null; if (httpRequest.Query.ContainsKey("language")) { translator = _translators.FirstOrDefault(t => t.LanguageName == httpRequest.Query["language"].ToString()); httpResponse.AddCookie(new System.Web.HttpCookie("language", httpRequest.Query["language"].ToString())); } else if (httpRequest.Cookies.Get("language") != null) { var cookie = httpRequest.Cookies.Get("language"); translator = _translators.FirstOrDefault(t => t.LanguageName == cookie.Value); } if (translator == null) translator = _defaultTranslator; if (page.RequiresAuthentication) { if (!Authenticator.CheckAuthentication(httpRequest)) return null; } if (page.RequiresAdminAuthentication) { if (!Authenticator.CheckAdminAuthentication(httpRequest)) return null; } vars = page.Fill(this, parentFileName, httpRequest, httpResponse, requestParameters, translator, out response); return vars; } return null; }