From 0e9e110e01dafd03f9b06739eb90652469cbec1b Mon Sep 17 00:00:00 2001 From: Sean Date: Sun, 23 Feb 2025 18:07:43 -0500 Subject: [PATCH] Implement password based authorization. --- MarketDataLib/Service/Authorization.cs | 3 --- .../Service/MarketDataServiceClient.cs | 8 ++++--- Navigator/App.xaml.cs | 6 ++--- Navigator/AppSettings.json | 3 ++- Navigator/Utility/IPCache.cs | 22 +++++++++---------- Navigator/ViewModels/AboutViewModel.cs | 6 ++--- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/MarketDataLib/Service/Authorization.cs b/MarketDataLib/Service/Authorization.cs index 03cacad..e96539a 100644 --- a/MarketDataLib/Service/Authorization.cs +++ b/MarketDataLib/Service/Authorization.cs @@ -1,8 +1,5 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Text; -using System.Threading.Tasks; namespace MarketData.Service { diff --git a/MarketDataLib/Service/MarketDataServiceClient.cs b/MarketDataLib/Service/MarketDataServiceClient.cs index 43e9632..25552be 100644 --- a/MarketDataLib/Service/MarketDataServiceClient.cs +++ b/MarketDataLib/Service/MarketDataServiceClient.cs @@ -42,7 +42,7 @@ namespace MarketData.Service /// /// The fully qualified url http://100.0.0.0:8000. /// The user. - public void SetUrl(String url,String user) + public void SetUrl(String url,String user, String password) { lock(this) { @@ -51,7 +51,7 @@ namespace MarketData.Service httpClient = new HttpClient(); httpClient.BaseAddress = baseUri; httpClient.Timeout=CONNECTION_TIMEOUT; - ServiceResult serviceResult=Login(user); + ServiceResult serviceResult=Login(user, password); if(!serviceResult.Success)return; accessToken=(String)serviceResult.ContextSpecificResult; } @@ -97,7 +97,7 @@ namespace MarketData.Service } } } - private ServiceResult Login(String user) + private ServiceResult Login(String user, String password) { lock(this) { @@ -106,7 +106,9 @@ namespace MarketData.Service if(!IsNetworkAvailable())return new ServiceResult(false,"No network."); StringBuilder sb = new StringBuilder(); user = Authorizations.Xor(user); + password = Authorizations.Xor(password); sb.Append("/api/Authorization/GetToken?").Append("user=").Append(user); + sb.Append("&password=").Append(password); String json = httpClient.GetStringAsync(sb.ToString()).Result; String accessToken = JsonConvert.DeserializeObject(json); return new ServiceResult(accessToken); diff --git a/Navigator/App.xaml.cs b/Navigator/App.xaml.cs index 0c0f4fd..0192633 100644 --- a/Navigator/App.xaml.cs +++ b/Navigator/App.xaml.cs @@ -26,17 +26,17 @@ namespace Navigator String ipAddress=IPCache.GetIPAddress(); if (null != ipAddress && MarketDataServiceClient.GetInstance().Ping(ToUrl(ipAddress))) { - MarketDataServiceClient.GetInstance().SetUrl(ToUrl(ipAddress), AppSettingsManager.Settings["ServiceUser"]); + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(ipAddress), AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServicePassword"]); } else if (MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Local"]))) { IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Local"]); - MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Local"]), AppSettingsManager.Settings["ServiceUser"]); + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Local"]), AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServicePassword"]); } else if (MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Network"]))) { IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Network"]); - MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Network"]), AppSettingsManager.Settings["ServiceUser"]); + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Network"]), AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServicePassword"]); } } diff --git a/Navigator/AppSettings.json b/Navigator/AppSettings.json index c52e72f..5923e6b 100644 --- a/Navigator/AppSettings.json +++ b/Navigator/AppSettings.json @@ -3,5 +3,6 @@ "Service_Network": "diversified-software.com", "Service_Postfix": ":8000", "Service_Prefix": "http://", - "ServiceUser": "sean" + "ServiceUser": "sean", + "ServicePassword": "MN5191306" } \ No newline at end of file diff --git a/Navigator/Utility/IPCache.cs b/Navigator/Utility/IPCache.cs index 6116a36..8a57125 100644 --- a/Navigator/Utility/IPCache.cs +++ b/Navigator/Utility/IPCache.cs @@ -1,16 +1,16 @@ using System; -using System.Text; -using System.IO.Compression; using System.IO; -using System.Globalization; -using System.Linq; -using Microsoft.Win32; -using System.Diagnostics; -using System.Collections.Generic; -using Navigator.MarketDataModel; -using Xamarin.Forms; -using System.Runtime.CompilerServices; -using System.Runtime.ConstrainedExecution; +//using System.Text; +//using System.IO.Compression; +//using System.Globalization; +//using System.Linq; +//using Microsoft.Win32; +//using System.Diagnostics; +//using System.Collections.Generic; +//using Navigator.MarketDataModel; +//using Xamarin.Forms; +//using System.Runtime.CompilerServices; +//using System.Runtime.ConstrainedExecution; namespace Navigator.Utils { diff --git a/Navigator/ViewModels/AboutViewModel.cs b/Navigator/ViewModels/AboutViewModel.cs index 9357633..f32fea7 100644 --- a/Navigator/ViewModels/AboutViewModel.cs +++ b/Navigator/ViewModels/AboutViewModel.cs @@ -62,7 +62,7 @@ namespace Navigator.ViewModels Status="ping "+url+" ..."; if(MarketDataServiceClient.GetInstance().Ping(url)) { - MarketDataServiceClient.GetInstance().SetUrl(url,AppSettingsManager.Settings["ServiceUser"]); + MarketDataServiceClient.GetInstance().SetUrl(url,AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServiceUser"]); IPCache.SaveIPAddress(ipAddress); Status ="ping succeeded"; } @@ -77,7 +77,7 @@ namespace Navigator.ViewModels IPAddress=""; if(MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Local"]))) { - MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Local"]),AppSettingsManager.Settings["ServiceUser"]); + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Local"]), AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServicePassword"]); Message=ToUrl(AppSettingsManager.Settings["Service_Local"]); IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Local"]); Status="ping succeeded, connection reset to "+ToUrl(AppSettingsManager.Settings["Service_Local"]); @@ -86,7 +86,7 @@ namespace Navigator.ViewModels Status="ping "+ToUrl(AppSettingsManager.Settings["Service_Network"])+" ..."; if(MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Network"]))) { - MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Network"]),AppSettingsManager.Settings["ServiceUser"]); + MarketDataServiceClient.GetInstance().SetUrl(ToUrl(AppSettingsManager.Settings["Service_Network"]),AppSettingsManager.Settings["ServiceUser"], AppSettingsManager.Settings["ServicePassword"]); Message=ToUrl(AppSettingsManager.Settings["Service_Network"]); IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Network"]); Status="ping succeeded, connection reset to "+ToUrl(AppSettingsManager.Settings["Service_Network"]);