In this article, we will discuss the ASP.Net Core Authentication and Authorization Basics in .Net Core 6.0.
Table of Contents
Prerequisites
- Download and install .Net Core 6.0 SDK from here
- Download and Install Microsoft Visual Studio 2022 from here
Previous Article you can also check Create ASP.Net Core Web API
Create ASP.NET Core Web App
- Open visual studio and click the Create New Project Option
- Select the Blank Template
- Enter the name of the Project
Select Framework and Click on Create
Create Controller
Create the Home Controller
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;
namespace App_Auth_Authorization.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
[Authorize]
public IActionResult Employee()
{
return View();
}
public async Task<IActionResult> Authenticate()
{
var Auth_Claims = new List<Claim>
{
new Claim(ClaimTypes.Name,"labpys.com"),
new Claim(ClaimTypes.Name,"Example@labpys.com"),
};
var license = new List<Claim>() {
new Claim(ClaimTypes.Name, "Admin"),
new Claim("UniqueIdentity", "B+"),
};
var AuthIdenity = new ClaimsIdentity(Auth_Claims, "Auth_Tutorial");
var LicenseIdentity = new ClaimsIdentity(license, "Auth_Tutorial");
var userPrincipal = new ClaimsPrincipal( new[] { AuthIdenity, LicenseIdentity });
await HttpContext.SignInAsync(userPrincipal);
return Redirect(nameof(Index));
}
}
}
Authorization – To make ASP.NET Core Authorized Attribute work, you must include the relevant middleware in program class.
var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;
services.AddControllersWithViews();
services.AddAuthentication("CookieAuth")
.AddCookie("CookieAuth", config =>
{
config.Cookie.Name = "Auth_Tutorial";
config.LoginPath = "/Home/Authenticate";
});
services.AddMvc();
var app = builder.Build();
app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
});
app.Run();
Customize View
Index.cshtml
@{
}
<h1>Layout Page</h1>
Employee.cshtml
@{
}
<h1>Employee Detail</h1>