EchoTex_Payroll/HRM.UI/Controllers/MobileAPI/Components/AuthenticationHandler.cs
2024-10-14 10:01:49 +06:00

95 lines
4.7 KiB
C#

//using HRM.BO;
//using Microsoft.AspNetCore.Http;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Net;
//using System.Net.Http;
//using System.Security.Principal;
//using System.Text;
//using System.Threading;
//using System.Threading.Tasks;
//using System.Web;
//namespace HRM.UI.Components
//{
// public class AuthenticationHandler : DelegatingHandler
// {
// private readonly IEmpMobileService _EmpMobileService;
// IEnumerable<string> authHeaderValues = null;
// protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
// {
// try
// {
// request.Headers.TryGetValues("Authorization", out authHeaderValues);
// if (authHeaderValues == null)
// {
// var response = request.CreateResponse(HttpStatusCode.Forbidden, new CustomMessage() { Caption = EnumExceptionType.Error.ToFriendlyString(), Message = "Access Forbidden.Contact to system Administrator." });
// var tsc = new TaskCompletionSource<HttpResponseMessage>();
// tsc.SetResult(response);
// return tsc.Task;
// }
// var tokens = authHeaderValues.FirstOrDefault();
// tokens = tokens.Replace("Basic", "").Trim();
// if (!string.IsNullOrEmpty(tokens))
// {
// byte[] data = Convert.FromBase64String(tokens);
// string decodedString = Encoding.UTF8.GetString(data);
// if (!decodedString.Equals("CEL1@3$5"))
// {
// string[] tokensValues = decodedString.Split(new char[] { ':' }, 2);
// if (tokensValues.Length != 2)
// {
// var response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
// var tsc = new TaskCompletionSource<HttpResponseMessage>();
// tsc.SetResult(response);
// return tsc.Task;
// }
// int EmployeeID;
// int.TryParse(tokensValues[0], out EmployeeID);
// ServiceInitializer.Initialize(EmployeeID);
// EmpMobile oEmpMobile = _EmpMobileService.Get(EmployeeID, tokensValues[1]);
// if (oEmpMobile != null)
// {
// IPrincipal principal = new CustomPrincipal(oEmpMobile);
// Thread.CurrentPrincipal = principal;
// HttpContext.Current.User = principal;
// }
// else // Unauthorized access - wrong crededentials
// {
// // { for hosting purpose }
// //oEmpMobile = EmpMobile.GetByEmployeeID(ID.FromInteger(EmployeeID)).First();
// //IPrincipal principal = new CustomPrincipal(oEmpMobile);
// //Thread.CurrentPrincipal = principal;
// //HttpContext.Current.User = principal;
// var response = request.CreateResponse(HttpStatusCode.Forbidden, new CustomMessage() { Caption = EnumExceptionType.Error.ToFriendlyString(), Message = "Access Forbidden.Contact to system Administrator." });
// var tsc = new TaskCompletionSource<HttpResponseMessage>();
// tsc.SetResult(response);
// return tsc.Task;
// }
// }
// }
// else
// {
// var response = request.CreateResponse(HttpStatusCode.Forbidden, new CustomMessage() { Caption = EnumExceptionType.Error.ToFriendlyString(), Message = "Access Forbidden.Contact to system Administrator." });
// var tsc = new TaskCompletionSource<HttpResponseMessage>();
// tsc.SetResult(response);
// return tsc.Task;
// }
// return base.SendAsync(request, cancellationToken);
// }
// catch
// {
// var response = request.CreateResponse(HttpStatusCode.Forbidden, new CustomMessage() { Caption = EnumExceptionType.Error.ToFriendlyString(), Message = "Access Forbidden.Contact to system Administrator." });
// var tsc = new TaskCompletionSource<HttpResponseMessage>();
// tsc.SetResult(response);
// return tsc.Task;
// }
// }
// }
//}