Skip to main content

Dotnet Core Web Api Authendication in C#

using System;
using System.Net.Http.Headers;
using System.Security.Claims;
using System.Text;
using System.Text.Encodings.Web;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;


namespace MovejobtoWms.Helpers
{
    public class CustomAuthenticationHandler : AuthenticationHandler<AuthenticationSchemeOptions>
    {
        // private readonly IUserService _userService;

        public CustomAuthenticationHandler(
            IOptionsMonitor<AuthenticationSchemeOptionsoptions,
            ILoggerFactory logger,
            UrlEncoder encoder,
            ISystemClock clock)
            : base(optionsloggerencoderclock)
        {
            //_userService = userService;
        }


        protected override async Task<AuthenticateResultHandleAuthenticateAsync()
        {

            if (!Request.Headers.ContainsKey("Authorization") || !Request.Headers.ContainsKey(""))
            {
                return AuthenticateResult.Fail("Missing Authorization Header");

            }
            // User user = null;
            try
            {
                var authHeader = AuthenticationHeaderValue.Parse(Request.Headers[""]);
                var tokenkey = AuthenticationHeaderValue.Parse(Request.Headers[""]);
                var credentialBytes = Convert.FromBase64String(authHeader.Parameter);
                var credentials = Encoding.UTF8.GetString(credentialBytes).Split(new[] { ':' }, 2);
                var username = credentials[0];
                var password = credentials[1];
                // user = await _userService.Authenticate(username, password);

                bool isvalid = tokenkey.Scheme.Equals("");
                bool isvalidusrNamePassword = username.Equals("") && password.Equals("");

                if (isvalid && isvalidusrNamePassword)
                {
                    var claims = new[] {
                new Claim(ClaimTypes.NameIdentifier,System.Environment.UserName),
                new Claim(ClaimTypes.NameSystem.Environment.UserName),
            };
                    var identity = new ClaimsIdentity(claimsScheme.Name);
                    var principal = new ClaimsPrincipal(identity);
                    var ticket = new AuthenticationTicket(principalScheme.Name);

                    return AuthenticateResult.Success(ticket);
                }
                else if (isvalid && !isvalidusrNamePassword)
                {
                    return AuthenticateResult.Fail("Invalid UserName and Password");
                }
                else if (!isvalid && !isvalidusrNamePassword)
                {
                    return AuthenticateResult.Fail("Invalid Token Key");
                }
                else
                {
                    return AuthenticateResult.Fail("Both Token key and UserName Password Incorrect");
                }
               



            }
            catch
            {
                return AuthenticateResult.Fail("Invalid Authorization Header");
            }



        }
    }
}

Comments

Popular posts from this blog

Vb Net reference for JSon Extraction of String to Json .

 Public Shared Function SupplementaryUpload(ByVal ICMSIntegrationID As String, ByVal CMSActivityID As String, ByVal File As String, ByVal Flag As String, ByRef ErrorResponse As String) As Boolean         Try             'Dim client As New RestSharp.RestClient()             ' Dim BMJ_LinkUpload As String = ConfigurationManager.AppSettings("BMJ_API_Upload")             Dim BMJ_LinkUpload As String = "http://is-s2130:5000/BMJIntegration/SupplementaryUpload"             'client.BaseUrl = New Uri(BMJ_LinkUpload & "?ICMSIntegrationID=" & ICMSIntegrationID & "& CMSActivityID=" & CMSActivityID & "&File=" & File & "&Flag=" & Flag)             '''?ICMSIntegrationID=56445096&CMSActivityID=29&File=D:\admin.JPG&Flag=article_resource")         ...

Hosting multiple Environments

using   System ; using   System . Collections . Generic ; using   System . Linq ; using   System . Threading . Tasks ; using   Microsoft . AspNetCore . Builder ; using   Microsoft . AspNetCore . Hosting ; using   Microsoft . AspNetCore . HttpsPolicy ; using   Microsoft . AspNetCore . Mvc ; using   Microsoft . Extensions . Configuration ; using   Microsoft . Extensions . DependencyInjection ; using   Microsoft . Extensions . Hosting ; using   Microsoft . Extensions . Logging ; using   Microsoft . EntityFrameworkCore ; using   MovejobtoWms . Models ; using   Microsoft . AspNetCore . Authentication . Cookies ; using   Microsoft . AspNetCore . Authentication ; using   Newtonsoft . Json ; using   Microsoft . AspNetCore . Http ; using   System . Net . Http . Headers ; namespace   MovejobtoWms {      public   class   Star...

Code Example Zip File Extraction and Download in dotnet core api

using   System . Security . Principal ; using   Microsoft . Win32 . SafeHandles ; using   System . Dynamic ; using   System . Reflection . Metadata . Ecma335 ; using   System . Reflection . Metadata ; using   System . Text ; using   System . Runtime . CompilerServices ; using   System . Net . Http ; using   System ; using   System . Collections . Generic ; using   System . Linq ; using   System . Net . Mime ; using   System . Threading . Tasks ; using   Microsoft . AspNetCore . Http ; using   Microsoft . AspNetCore . Mvc ; using   Microsoft . EntityFrameworkCore ; using   MovejobtoWms . Models ; using   System . IO ; using   System . Net ; using   Microsoft . AspNetCore . Authorization ; using   System . IO . Compression ; using   System . Net . Http . Headers ; using   System . Net . Http . Formatting ; using   System ...