Authentication handler C# with Example
public class AuthenticationHandler : DelegatingHandler { /// /// Holds request's header name which will contains token. /// private const string securityToken = " RequestAuthToken"; /// /// Default overridden method which performs authentication. /// /// Http request message. /// Cancellation token. /// Returns http response message of type class asynchronously. protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { if (request.Headers.Contains(securityToken)) { bool authorized = Authorize(request); if (!authorized) { return ApiHttpUtility.FromResult(request, false, HttpStatusCode.Unauthorized, MessageTypes.Error, Resource.UnAuthenticatedUser); } } else { return ApiHttpUtility.FromResult(request, false, HttpStatusCode.BadRequest, MessageTypes.Error, Resource.UnAuthenticatedUser); } return base.SendAsync(request, cancellationToken); } /// /// Authorize user by validating token. /// /// Authorization context. /// Returns a value indicating whether current request is authenticated or not. private bool Authorize(HttpRequestMessage requestMessage) { try { HttpRequest request = HttpContext.Current.Request; string token = request.Headers[securityToken]; return SecurityUtility.IsTokenValid(token, request.UserAgent, HttpContext.Current.Server.MapPath("~/Content/"), requestMessage); } catch (Exception) { return false; } } }