Files
C4IT-F4SD-Client/FasdCockpitCommunication/F4sdCockpitCommunicationM42Web.cs
2025-11-11 11:03:42 +01:00

132 lines
4.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
using C4IT.FASD.Base;
using C4IT.FASD.Cockpit.Communication;
using C4IT.Logging;
using static C4IT.Logging.cLogManager;
using C4IT.Matrix42.WebClient;
using System.Collections;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace C4IT.FASD.Cockpit.Communication
{
internal class cF4sdCockpitCommunicationM42Web : cF4sdCockpitCommunicationM42Base
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static string getServer()
{
return cCockpitConfiguration.Instance?.m42ServerConfiguration?.Server;
}
public override async Task<cF4sdCockpitM42BearerTokenInfo> ValidateLogonPassthrough()
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
var _m42Server = getServer();
if (string.IsNullOrEmpty(_m42Server))
return null;
var _userInfo = await cM42WebClient.LogonWin(_m42Server);
if (_userInfo != null && _userInfo.Reason == cM42WebClient.eReason.ok)
{
return new cF4sdCockpitM42BearerTokenInfo()
{
Token = _userInfo.BearerToken,
ValidUntil = _userInfo.BearerValidUntil
};
}
}
catch (Exception E)
{
LogException(E);
}
finally
{
LogMethodEnd(CM);
}
return null;
}
public override async Task<cF4sdCockpitM42BearerTokenInfo> ValidateLogonBasic(string User, string Password)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
var _m42Server = getServer();
if (string.IsNullOrEmpty(_m42Server))
return null;
NetworkCredential networkCredential = new NetworkCredential(User, Password);
var _userInfo = await cM42WebClient.LogonWin(_m42Server, Credentials: networkCredential);
if (_userInfo != null && _userInfo.Reason == cM42WebClient.eReason.ok)
{
return new cF4sdCockpitM42BearerTokenInfo()
{
Token = _userInfo.BearerToken,
ValidUntil = _userInfo.BearerValidUntil
};
}
}
catch (Exception E)
{
LogException(E);
}
finally
{
LogMethodEnd(CM);
}
return null;
}
public override async Task<cF4sdCockpitM42BearerTokenInfo> ValidateLogonToken(string Token)
{
var CM = MethodBase.GetCurrentMethod();
LogMethodBegin(CM);
try
{
var _m42Server = getServer();
if (string.IsNullOrEmpty(_m42Server))
return null;
var _userInfo = await cM42WebClient.LogonToken(_m42Server, Token);
if (_userInfo != null && _userInfo.Reason == cM42WebClient.eReason.ok)
{
return new cF4sdCockpitM42BearerTokenInfo()
{
Token = _userInfo.BearerToken,
ValidUntil = _userInfo.BearerValidUntil
};
}
}
catch (Exception E)
{
LogException(E);
}
finally
{
LogMethodEnd(CM);
}
return null;
}
}
}