//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 authHeaderValues = null; // protected override Task 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(); // 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(); // 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(); // 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(); // 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(); // tsc.SetResult(response); // return tsc.Task; // } // } // } //}