.NET8入门:7.身份验证(Cookies)

ASP.NET Core中提供了多种身份证认证模式,几种常见的身份认证模式有以下几种。本文将详细介绍一下Cookie身份认证在ASP.NET Core中如何使用。

认证模式

介绍

Cookie

最常见的身份认证方式之一。用户登录成功后,服务器会生成一个加密的 Cookie 并发送给客户端,客户端在后续请求中携带该 Cookie 来验证用户身份。

JWT

JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519),用于在网络上安全地传输声明。JWT 认证通过在客户端和服务器之间传递加密的 Token 来验证用户身份。

OAuth

一种开放标准,用于授权第三方应用程序访问用户数据。ASP.NET Core 提供了 OAuth 认证机制,允许应用程序通过 OAuth 协议与第三方身份提供者进行集成。

OpenID Connect

建立在 OAuth 2.0 协议之上的身份认证协议,用于验证用户身份。ASP.NET Core 提供了对 OpenID Connect 的支持,可以与支持 OpenID Connect 的身份提供者集成。

Windows

ASP.NET Core 支持 Windows 身份认证,允许用户使用他们的 Windows 凭据登录到应用程序。

ASP.NET Core中如需使用Cookie身份证验证需要以下几个步骤:

  • 使用AddAuthentication和AddCookie方法添加身份验证中间件服务。
  • 调用 UseAuthentication 和 UseAuthorization 以设置 HttpContext.User 属性,并为请求运行授权中间件。 必须在调用 Map 方法(例如 MapRazorPages 和 MapDefaultControllerRoute)之前调用 UseAuthentication 和 UseAuthorization。

项目(新建的WebApi)结构如图所示:

实际代码示例如下:

Program.cs

using Microsoft.AspNetCore.Authentication.Cookies;

var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();

//添加Cookie授权
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
//登陆地址
options.LoginPath = "/Auth/Login";
//禁止访问地址
options.AccessDeniedPath = "/Auth/AccessDenied";
//Cookie过期时间
options.ExpireTimeSpan = TimeSpan.FromMinutes(20);
//校验过期
});

builder.Services.AddAuthorization(options =>
{
    //Claim中携带Admin即可通过认证
    //options.AddPolicy("Admin", policy =>policy.RequireClaim("Admin"));
    //Role角色为Admin通过认证
    options.AddPolicy("Admin", policy => policy.RequireRole("Admin"));

});

builder.Services.AddMvcCore();
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.

app.UseHttp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值