48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System;
|
|
using C4IT.Security;
|
|
using C4IT.API.Contracts;
|
|
|
|
|
|
namespace C4IT_CustomerPanel.libs
|
|
{
|
|
public class UserInfo
|
|
{
|
|
public static UserInfo UserInfoInstance = null;
|
|
|
|
public string Id { get; set; }
|
|
public string Email { get; set; }
|
|
public string EncryptedApiToken { get; set; }
|
|
public DateTime LoginDate { get; set; }
|
|
public DateTime ExpirationDate { get; set; }
|
|
|
|
public UserInfo()
|
|
{
|
|
UserInfoInstance = this;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
// Nur die ersten X Zeichen des Tokens anzeigen
|
|
const int tokenVisibleLength = 10;
|
|
string maskedToken;
|
|
|
|
if (string.IsNullOrEmpty(EncryptedApiToken))
|
|
{
|
|
maskedToken = "(null or empty)";
|
|
}
|
|
else
|
|
{
|
|
var displayLength = Math.Min(tokenVisibleLength, EncryptedApiToken.Length);
|
|
maskedToken = EncryptedApiToken.Substring(0, displayLength)
|
|
+ new string('*', Math.Max(0, EncryptedApiToken.Length - displayLength));
|
|
}
|
|
|
|
return $"UserInfo => Id: {Id}, " +
|
|
$"Email: {Email}, " +
|
|
$"Token: {maskedToken}, " +
|
|
$"LoginDate: {LoginDate:u}, " +
|
|
$"ExpirationDate: {ExpirationDate:u}";
|
|
}
|
|
}
|
|
}
|