diff --git a/.vs/Server Dashboard/DesignTimeBuild/.dtbcache.v2 b/.vs/Server Dashboard/DesignTimeBuild/.dtbcache.v2 index 2f16743..5836e70 100644 Binary files a/.vs/Server Dashboard/DesignTimeBuild/.dtbcache.v2 and b/.vs/Server Dashboard/DesignTimeBuild/.dtbcache.v2 differ diff --git a/.vs/Server Dashboard/v16/.suo b/.vs/Server Dashboard/v16/.suo index 7ebdc78..7707516 100644 Binary files a/.vs/Server Dashboard/v16/.suo and b/.vs/Server Dashboard/v16/.suo differ diff --git a/Server Dashboard Socket/obj/Debug/netcoreapp3.1/Server Dashboard Socket.csproj.FileListAbsolute.txt b/Server Dashboard Socket/obj/Debug/netcoreapp3.1/Server Dashboard Socket.csproj.FileListAbsolute.txt index 29ff18e..762495d 100644 --- a/Server Dashboard Socket/obj/Debug/netcoreapp3.1/Server Dashboard Socket.csproj.FileListAbsolute.txt +++ b/Server Dashboard Socket/obj/Debug/netcoreapp3.1/Server Dashboard Socket.csproj.FileListAbsolute.txt @@ -6,3 +6,4 @@ C:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard Socket\obj\Debug C:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard Socket\obj\Debug\netcoreapp3.1\Server Dashboard Socket.csproj.CoreCompileInputs.cache C:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard Socket\obj\Debug\netcoreapp3.1\Server Dashboard Socket.dll C:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard Socket\obj\Debug\netcoreapp3.1\Server Dashboard Socket.pdb +C:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard Socket\obj\Debug\netcoreapp3.1\Server Dashboard Socket.csprojAssemblyReference.cache diff --git a/Server Dashboard Socket/obj/Debug/netcoreapp3.1/Server Dashboard Socket.csprojAssemblyReference.cache b/Server Dashboard Socket/obj/Debug/netcoreapp3.1/Server Dashboard Socket.csprojAssemblyReference.cache new file mode 100644 index 0000000..8a5ef04 Binary files /dev/null and b/Server Dashboard Socket/obj/Debug/netcoreapp3.1/Server Dashboard Socket.csprojAssemblyReference.cache differ diff --git a/Server Dashboard/Database/DatabaseHandler.cs b/Server Dashboard/Database/DatabaseHandler.cs index 16d3c05..5fce34a 100644 --- a/Server Dashboard/Database/DatabaseHandler.cs +++ b/Server Dashboard/Database/DatabaseHandler.cs @@ -35,71 +35,64 @@ namespace Server_Dashboard { } } - public static bool CheckCookie(string cookie, string username) { - string valid = "False"; - ConnectToDatabase(con => { - string query = "EXEC CheckUserCookie @Cookie = @cookie, @UserName = @username, @Valid = @valid OUTPUT"; - using (SqlCommand com = new SqlCommand(query, con)) { - com.Parameters.AddWithValue("@cookie", cookie); - com.Parameters.AddWithValue("@username", username); - com.Parameters.Add("@valid", SqlDbType.NVarChar, 250); - com.Parameters["@valid"].Direction = ParameterDirection.Output; - com.ExecuteNonQuery(); - valid = Convert.ToString(com.Parameters["@Valid"].Value); - } - }); - return Convert.ToBoolean(valid); - } - - public static bool DeleteCookie(string username) { - string valid = "False"; - ConnectToDatabase(con => { - string query = "EXEC DeleteUserCookie @Username = @username, @ResponseMessage = @response OUTPUT"; - using (SqlCommand com = new SqlCommand(query, con)) { - com.Parameters.AddWithValue("@username", username); - com.Parameters.Add("@response", SqlDbType.NVarChar, 250); - com.Parameters["@response"].Direction = ParameterDirection.Output; - com.ExecuteNonQuery(); - valid = Convert.ToString(com.Parameters["@ResponseMessage"].Value); - } - }); - return Convert.ToBoolean(valid); - } - - public static bool AddCookie(string cookie, string username) { - string valid = "False"; - ConnectToDatabase(con => { - string query = "EXEC AddCookieToUser @Cookie = @cookie, @UserName = @username, @ResponseMessage = @response OUTPUT"; - using (SqlCommand com = new SqlCommand(query, con)) { - com.Parameters.AddWithValue("@cookie", cookie); - com.Parameters.AddWithValue("@username", username); - com.Parameters.Add("@response", SqlDbType.NVarChar, 250); - com.Parameters["@response"].Direction = ParameterDirection.Output; - com.ExecuteNonQuery(); - valid = Convert.ToString(com.Parameters["@ResponseMessage"].Value); - } - }); - return Convert.ToBoolean(valid); - } - - #region Private methods - /// - /// Opens a database connection - /// - /// Callback type SqlConnection - /// - private static SqlConnection ConnectToDatabase(Action callback) { + public static int CheckCookie(string cookie, string username) { using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ServerDashboardDB"].ConnectionString)) { try { con.Open(); - callback(con); - con.Close(); + string query = "EXEC CheckUserCookie @Cookie = @cookie, @UserName = @username, @Valid = @valid OUTPUT"; + using (SqlCommand com = new SqlCommand(query, con)) { + com.Parameters.AddWithValue("@cookie", cookie); + com.Parameters.AddWithValue("@username", username); + com.Parameters.Add("@valid", SqlDbType.Bit); + com.Parameters["@valid"].Direction = ParameterDirection.Output; + com.ExecuteNonQuery(); + return Convert.ToInt32(com.Parameters["@Valid"].Value); + } } catch (SqlException ex) { - return null; + return ex.Number; + } finally { + con.Close(); + } + } + } + + public static void DeleteCookie(string username) { + using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ServerDashboardDB"].ConnectionString)) { + try { + con.Open(); + string query = "EXEC DeleteUserCookie @Username = @username, @ResponseMessage = @response OUTPUT"; + using (SqlCommand com = new SqlCommand(query, con)) { + com.Parameters.AddWithValue("@username", username); + com.Parameters.Add("@response", SqlDbType.NVarChar, 250); + com.Parameters["@response"].Direction = ParameterDirection.Output; + com.ExecuteNonQuery(); + } + } catch (SqlException ex) { + } finally { + con.Close(); + } + } + } + + public static int AddCookie(string cookie, string username) { + using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ServerDashboardDB"].ConnectionString)) { + try { + con.Open(); + string query = "EXEC AddCookieToUser @Cookie = @cookie, @UserName = @username, @ResponseMessage = @response OUTPUT"; + using (SqlCommand com = new SqlCommand(query, con)) { + com.Parameters.AddWithValue("@cookie", cookie); + com.Parameters.AddWithValue("@username", username); + com.Parameters.Add("@response", SqlDbType.NVarChar, 250); + com.Parameters["@response"].Direction = ParameterDirection.Output; + com.ExecuteNonQuery(); + return Convert.ToInt32(com.Parameters["@ResponseMessage"].Value); + } + } catch (SqlException ex) { + return ex.Number; + } finally { + con.Close(); } } - return null; } - #endregion } } diff --git a/Server Dashboard/Properties/Settings.Designer.cs b/Server Dashboard/Properties/Settings.Designer.cs index 01abcab..4817d7f 100644 --- a/Server Dashboard/Properties/Settings.Designer.cs +++ b/Server Dashboard/Properties/Settings.Designer.cs @@ -58,5 +58,17 @@ namespace Server_Dashboard.Properties { this["RememberMe"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Password { + get { + return ((string)(this["Password"])); + } + set { + this["Password"] = value; + } + } } } diff --git a/Server Dashboard/Properties/Settings.settings b/Server Dashboard/Properties/Settings.settings index de72377..3f42ea4 100644 --- a/Server Dashboard/Properties/Settings.settings +++ b/Server Dashboard/Properties/Settings.settings @@ -11,5 +11,8 @@ False + + + \ No newline at end of file diff --git a/Server Dashboard/ViewModels/Login/LoginViewModel.cs b/Server Dashboard/ViewModels/Login/LoginViewModel.cs index be00f9b..1999147 100644 --- a/Server Dashboard/ViewModels/Login/LoginViewModel.cs +++ b/Server Dashboard/ViewModels/Login/LoginViewModel.cs @@ -60,6 +60,7 @@ namespace Server_Dashboard { Username = Settings.Default.Username; RememberUser = Settings.Default.RememberMe; } + AutoLoginAsync(); } public ICommand LoginCommand { get; set; } @@ -81,6 +82,7 @@ namespace Server_Dashboard { Settings.Default.Cookies = null; Settings.Default.Username = ""; Settings.Default.RememberMe = false; + Settings.Default.Password = ""; Settings.Default.Save(); DatabaseHandler.DeleteCookie(Username); } @@ -89,6 +91,7 @@ namespace Server_Dashboard { Settings.Default.Cookies = guid; Settings.Default.Username = Username; Settings.Default.RememberMe = true; + Settings.Default.Password = "*****"; Settings.Default.Save(); DatabaseHandler.AddCookie(Username, guid); } @@ -117,5 +120,19 @@ namespace Server_Dashboard { } ErrorText = ""; } + //TODO: Add autologin function that locks the UI untill the user hits the abort button or the login completes + /*private async void AutoLoginAsync() { + if (Settings.Default.RememberMe && !String.IsNullOrEmpty(Settings.Default.Username) && !String.IsNullOrEmpty(Settings.Default.Cookies)) { + Loading = "Visible"; + int result = await Task.Run(() => DatabaseHandler.CheckCookie(Settings.Default.Cookies, Username)); + Loading = "Hidden"; + if (result == 1) { + DashboardWindow window = new DashboardWindow(); + window.Show(); + Close?.Invoke(); + return; + } + } + }*/ } } diff --git a/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.dll b/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.dll index a20d72d..7318603 100644 Binary files a/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.dll and b/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.dll differ diff --git a/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.pdb b/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.pdb index 34e65dd..8878f10 100644 Binary files a/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.pdb and b/Server Dashboard/bin/Debug/netcoreapp3.1/Server Dashboard.pdb differ diff --git a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.csprojAssemblyReference.cache b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.csprojAssemblyReference.cache index 783e1fd..26ea6b7 100644 Binary files a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.csprojAssemblyReference.cache and b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.csprojAssemblyReference.cache differ diff --git a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.dll b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.dll index a20d72d..7318603 100644 Binary files a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.dll and b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.dll differ diff --git a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.pdb b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.pdb index 34e65dd..8878f10 100644 Binary files a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.pdb and b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard.pdb differ diff --git a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard_MarkupCompile.i.lref b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard_MarkupCompile.i.lref index 04dfb39..835b885 100644 --- a/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard_MarkupCompile.i.lref +++ b/Server Dashboard/obj/Debug/netcoreapp3.1/Server Dashboard_MarkupCompile.i.lref @@ -1,4 +1,11 @@ - - +C:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\obj\Debug\netcoreapp3.1\GeneratedInternalTypeHelper.g.i.cs +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\App.xaml;; +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\Controls\Dashboard\CRUD Popup\CreateModulePopup.xaml;; +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\Controls\DoubleRoundProgressBar\DoubleRoundProgressBar.xaml;; +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\Controls\HalfRoundProgressBar\HalfRoundProgressBar.xaml;; FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\Controls\LoadingIndicator\LoadingIndicator.xaml;; +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\Controls\ServerModules\ServerModule.xaml;; +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\LoginWindow.xaml;; +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\Views\DashboardPages\MainDashboardPage.xaml;; +FC:\Users\Crylia\Documents\Git\Server Dashboard\Server Dashboard\Views\DashboardWindow.xaml;;