.NET8入门:11.身份验证(Windows)

ASP.NET Core中提供了多种身份证认证模式,几种常见的身份认证模式有以下几种。本文将详细介绍一下Windows身份认证在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 凭据登录到应用程序。

Windows身份验证

在ASP.NET Core中自带Windows身份验证具体使用过程如下:

Demo

项目结构如下:

.NET8入门:11.身份验证(Windows)_第1张图片

  • 添加Windows授权认证。

Program.cs

using Microsoft.AspNetCore.Authentication.Negotiate;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

 //添加Windows授权认证
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
                .AddNegotiate();

 //添加Windows授权认证
builder.Services.AddAuthorization(options =>
{
    // By default, all incoming requests will be authorized according to the default policy.
    options.FallbackPolicy = options.DefaultPolicy;
});
builder.Services.AddRazorPages();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapRazorPages();

app.Run();
  • 配置启用Windows认证。

Properties\launchSettings.json

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
  //启用Windows认证
    "windowsAuthentication": true,
  //禁止匿名访问
    "anonymousAuthentication": false,
    "iisExpress": {
      "applicationUrl": "http://localhost:31928",
      "sslPort": 0
    }
  },
  "profiles": {
    "http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5247",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
  • 添加身份授权信息显示

Index.cshtml        

        登陆(账号密码均为:bob)后结果如图:

.NET8入门:11.身份验证(Windows)_第2张图片

到此ASP.NET中常用的几种身份认证模式已全部讲完。后续将通过一个实际项目和大家一起学习了解更多ASP.NET相关知识。

你可能感兴趣的:(.NET8从入门到放弃,.net,windows)