Implement password based authorization.

This commit is contained in:
2025-02-23 18:07:43 -05:00
parent 99f7061a9f
commit 0e9e110e01
6 changed files with 24 additions and 24 deletions

View File

@@ -1,8 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks;
namespace MarketData.Service namespace MarketData.Service
{ {

View File

@@ -42,7 +42,7 @@ namespace MarketData.Service
/// </summary> /// </summary>
/// <param name="url">The fully qualified url http://100.0.0.0:8000.</param> /// <param name="url">The fully qualified url http://100.0.0.0:8000.</param>
/// <param name="user">The user.</param> /// <param name="user">The user.</param>
public void SetUrl(String url,String user) public void SetUrl(String url,String user, String password)
{ {
lock(this) lock(this)
{ {
@@ -51,7 +51,7 @@ namespace MarketData.Service
httpClient = new HttpClient(); httpClient = new HttpClient();
httpClient.BaseAddress = baseUri; httpClient.BaseAddress = baseUri;
httpClient.Timeout=CONNECTION_TIMEOUT; httpClient.Timeout=CONNECTION_TIMEOUT;
ServiceResult serviceResult=Login(user); ServiceResult serviceResult=Login(user, password);
if(!serviceResult.Success)return; if(!serviceResult.Success)return;
accessToken=(String)serviceResult.ContextSpecificResult; 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) lock(this)
{ {
@@ -106,7 +106,9 @@ namespace MarketData.Service
if(!IsNetworkAvailable())return new ServiceResult(false,"No network."); if(!IsNetworkAvailable())return new ServiceResult(false,"No network.");
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
user = Authorizations.Xor(user); user = Authorizations.Xor(user);
password = Authorizations.Xor(password);
sb.Append("/api/Authorization/GetToken?").Append("user=").Append(user); sb.Append("/api/Authorization/GetToken?").Append("user=").Append(user);
sb.Append("&password=").Append(password);
String json = httpClient.GetStringAsync(sb.ToString()).Result; String json = httpClient.GetStringAsync(sb.ToString()).Result;
String accessToken = JsonConvert.DeserializeObject<String>(json); String accessToken = JsonConvert.DeserializeObject<String>(json);
return new ServiceResult(accessToken); return new ServiceResult(accessToken);

View File

@@ -26,17 +26,17 @@ namespace Navigator
String ipAddress=IPCache.GetIPAddress(); String ipAddress=IPCache.GetIPAddress();
if (null != ipAddress && MarketDataServiceClient.GetInstance().Ping(ToUrl(ipAddress))) 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"]))) else if (MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Local"])))
{ {
IPCache.SaveIPAddress(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"]))) else if (MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Network"])))
{ {
IPCache.SaveIPAddress(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"]);
} }
} }

View File

@@ -3,5 +3,6 @@
"Service_Network": "diversified-software.com", "Service_Network": "diversified-software.com",
"Service_Postfix": ":8000", "Service_Postfix": ":8000",
"Service_Prefix": "http://", "Service_Prefix": "http://",
"ServiceUser": "sean" "ServiceUser": "sean",
"ServicePassword": "MN5191306"
} }

View File

@@ -1,16 +1,16 @@
using System; using System;
using System.Text;
using System.IO.Compression;
using System.IO; using System.IO;
using System.Globalization; //using System.Text;
using System.Linq; //using System.IO.Compression;
using Microsoft.Win32; //using System.Globalization;
using System.Diagnostics; //using System.Linq;
using System.Collections.Generic; //using Microsoft.Win32;
using Navigator.MarketDataModel; //using System.Diagnostics;
using Xamarin.Forms; //using System.Collections.Generic;
using System.Runtime.CompilerServices; //using Navigator.MarketDataModel;
using System.Runtime.ConstrainedExecution; //using Xamarin.Forms;
//using System.Runtime.CompilerServices;
//using System.Runtime.ConstrainedExecution;
namespace Navigator.Utils namespace Navigator.Utils
{ {

View File

@@ -62,7 +62,7 @@ namespace Navigator.ViewModels
Status="ping "+url+" ..."; Status="ping "+url+" ...";
if(MarketDataServiceClient.GetInstance().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); IPCache.SaveIPAddress(ipAddress);
Status ="ping succeeded"; Status ="ping succeeded";
} }
@@ -77,7 +77,7 @@ namespace Navigator.ViewModels
IPAddress=""; IPAddress="";
if(MarketDataServiceClient.IsWiFiNetwork() && MarketDataServiceClient.GetInstance().Ping(ToUrl(AppSettingsManager.Settings["Service_Local"]))) 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"]); Message=ToUrl(AppSettingsManager.Settings["Service_Local"]);
IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Local"]); IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Local"]);
Status="ping succeeded, connection reset to "+ToUrl(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"])+" ..."; Status="ping "+ToUrl(AppSettingsManager.Settings["Service_Network"])+" ...";
if(MarketDataServiceClient.GetInstance().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"]); Message=ToUrl(AppSettingsManager.Settings["Service_Network"]);
IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Network"]); IPCache.SaveIPAddress(AppSettingsManager.Settings["Service_Network"]);
Status="ping succeeded, connection reset to "+ToUrl(AppSettingsManager.Settings["Service_Network"]); Status="ping succeeded, connection reset to "+ToUrl(AppSettingsManager.Settings["Service_Network"]);