.NET 帮助

IdentityServer .NET(开发人员如何工作)

介绍

在当今的软件架构中,安全性至关重要,尤其是在涉及用户权限和身份验证时。 作为将OpenID Connect和OAuth 2.0付诸实践的顶级框架,IdentityServer4为分布式网络中的集中授权和认证提供了可靠的选择。 当开发者将IronPDF,一个强大的C#库用于PDF生成,与安全身份管理结合使用时,他们可以轻松地将两者结合起来,创建满足各种应用需求的PDF文档。

IdentityServer4 提供一个模块化、基于标准的解决方案,使身份管理安装更容易。 在它的帮助下,开发人员可以创建一个集中式身份供应商,为各种服务和应用程序处理用户身份验证、访问、令牌验证和签发以及权限验证。IdentityServer4通过支持多种身份验证方法,如用户名/密码、社交登录和多因素身份验证,使开发者能够创建安全、直观的身份验证体验。

本教程将介绍使用 IdentityServer4IronPDF 进行C#集成,展示如何使用 IdentityServer4 创建安全的授权和认证流程,以及如何使用创建的用户身份来定制 IronPDF 的PDF文档创建。 我们将介绍如何提高 C# 应用程序的安全性和功能性,从配置 IdentityServer4 作为集中式身份和认证提供商,到集成 IronPDF 用于动态 PDF 生产。

什么是 IdentityServer4 C#?

一个广受欢迎的开源框架IdentityServer4,用于.NET和C#应用程序执行身份管理、授权和身份验证。 它是保护网络应用程序、API 和微服务安全的灵活解决方案,因为它符合 OpenID Connect 和 OAuth 2.0 等现代安全协议。

IdentityServer4 本质上是一个集中的身份验证服务器,负责处理用户识别和权限管理核心身份、有效访问令牌发行和凭证验证。 它使程序员能够将联合身份验证和单点登录 (SSO) 整合到多个应用程序和服务中,从而带来安全流畅的终端用户体验。

IdentityServer .NET(开发人员如何使用):图 1 - IdentityServer4:使用 ASP.NET Core Identity

IdentityServer4的特性

单点登录

用户无需重新输入凭据,只需一次身份验证即可访问不同的应用程序或服务。

支持 OpenID Connect 和 OAuth 2.0

为了兼容和支持广泛的客户端应用程序和平台,IdentityServer4 为安全认证和授权提供了行业标准协议。

适应性强的设置

开发人员可以自定义安全设置,以满足某些应用程序的要求,因为他们可以精细控制身份验证和权限策略的配置方式。

与 ASP.NET Core 的连接性

由于IdentityServer4与框架的平滑集成,ASP.NET Core网络应用程序和API的身份验证很容易实现。

个性化和适应性

由于该框架具有高度的可扩展性和定制性,开发人员可以根据需要添加新的用户存储空间、身份供应商、测试用户和身份验证工作流。

用户验证

IdentityServer4 允许开发人员灵活选择最适合其网络应用要求的认证机制配置。 这些机制包括用户名/密码、社交登录(如Google、Facebook等),以及外部身份提供者(如Active Directory、Azure AD等)。

授权政策

为了保证只有经过授权的用户才能访问特定资源或在应用程序中执行特定操作,开发人员可以根据用户角色、权利要求或其他标准建立细粒度的授权策略。

代币管理

访问令牌、令牌刷新令牌和身份令牌都由 IdentityServer4 管理,它提供了一种安全的用户身份验证方法,允许用户访问受身份服务器保护的资源。

创建和配置

为了在 Visual Studio 的 C# 项目中设置 IdentityServer4,您必须执行以下步骤:

在 Visual Studio 中创建新项目

启动 Visual Studio 应用程序后,您可以选择 "创建新项目 "选项,也可以选择文件菜单 > 添加 >"新建项目"。 接下来,选择“新建项目”后,选择“Asp.NET Core Web 应用程序(模型-视图-控制器)”。 在本教程中,我们将使用此应用程序制作 PDF 文档。

 related to 在 Visual Studio 中创建新项目 “新项目” 选项。 然后选择“ASP.NET Core Web应用”" />

选择文件路径并在相应文本框中输入项目名称。 接下来,点击创建按钮,选择必要的 Dot .NET Framework,如下图所示。

![IdentityServer .NET(开发者工作机制):图 3 - 接下来,通过指定项目名称和位置来配置您的项目。 点击下一步。

接下来,决定需要哪个框架,然后按下创建按钮。

![IdentityServer .NET(它如何为开发人员工作):图 4 - 指定诸如框架、身份验证类型等附加信息,选择是否要配置 HTTPs 并启用 Docker。] 然后点击创建。](/static-assets/pdf/blog/identityserver-net/identityserver-net-4.webp)

现在,所选应用程序的结构将由 Visual Studio 项目生成。 本例中我们使用的是 ASP.NET MVC。 为了编写代码,我们既可以创建一个新的控制器,也可以利用已有的控制器,这样您就可以输入代码并构建/运行程序。

IdentityServer .NET(开发人员的工作原理):图5 - ASP.NET Core Web应用程序(MVC)项目已成功创建。

为了测试代码,我们可以添加库。

安装IdentityServer4软件包

使用 Visual Studio 中的 .NET CLI 或 NuGet 软件包管理器,将 IdentityServer4 软件包添加到您的项目中。 使用软件包管理器控制台或终端,键入以下命令安装最新版本的软件包:

Install-Package IdentityServer4
Install-Package IdentityServer4
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在 .NET Core 项目中配置 IdentityServer4

在您的 ASP.NET Core 应用程序中,通过在 Startup.cs 文件中添加所需的身份验证中间件和服务来配置 IdentityServer4。这里提供了一个配置IdentityServer4的介绍性代码示例:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddInMemoryClients(Config.Clients)
            .AddInMemoryIdentityResources(Config.IdentityResources)
            .AddInMemoryApiScopes(Config.ApiScopes)
            .AddInMemoryApiResources(Config.ApiResources)
            .AddTestUsers(Config.Users);
    }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseIdentityServer();
    }
}
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddInMemoryClients(Config.Clients)
            .AddInMemoryIdentityResources(Config.IdentityResources)
            .AddInMemoryApiScopes(Config.ApiScopes)
            .AddInMemoryApiResources(Config.ApiResources)
            .AddTestUsers(Config.Users);
    }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseIdentityServer();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

配置客户端、身份资源和 API 资源

为IdentityServer4配置客户端、身份资源(范围)、配置、数据库和API资源是必需的。这些配置可以在一个不同的类中定义,比如Config.cs:

public class Config
{
    public static IEnumerable<Client> Clients { get; set; }
    public static IEnumerable<IdentityResource> IdentityResources { get; set; }
    public static IEnumerable<ApiScope> ApiScopes { get; set; }
    public static IEnumerable<ApiResource> ApiResources { get; set; }
    public static List<TestUser> Users { get; set; }
}
public class Config
{
    public static IEnumerable<Client> Clients { get; set; }
    public static IEnumerable<IdentityResource> IdentityResources { get; set; }
    public static IEnumerable<ApiScope> ApiScopes { get; set; }
    public static IEnumerable<ApiResource> ApiResources { get; set; }
    public static List<TestUser> Users { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

按照这些说明,通过在C#项目中创建和配置IdentityServer4,您可以在ASP.NET Core应用程序中启用安全认证和授权。

使用 IronPdf 开始使用 IdentityServer4

这些说明将引导您完成配置IdentityServer4以便安全进行身份验证和授权代码,并使用IronPDF在C#项目中创建PDF文档。 您将根据本说明学习如何在基本设置的基础上创建一个项目。

什么是IronPDF?

用于.NET应用程序中,IronPDF 是一个功能丰富的库,用于与PDF文档交互。 凭借其广泛的功能集,用户可以从零开始或根据 HTML 内容创建 PDF,还可以添加、删除或重新排列已存在的 PDF 文档的部分。 IronPDF 为开发人员提供了用于生成、修改和转换 PDF 文件的强大 API,从而简化了在 .NET 应用程序中处理 PDF 的工作。

IdentityServer .NET(开发人员如何使用):图6 - IronPDF for .NET:C# PDF库

IronPDF 的主要功能

HTML 转换为 PDF

使用IronPDF,您可以通过使用HTML内容(包括JavaScript和CSS)来生成高质量的PDF文档。 该功能在根据网站或动态信息创建 PDF 时非常有用。

更改和改进 PDF

IronPDF允许您修改现有的PDF文档。可以将多个PDF合并为一个文档,从PDF中提取页面,并添加文字、照片、水印或注释。

立即制作 PDF

利用 IronPDF 的 API,您可以通过编程将文本、照片、形状和其他对象添加到新创建的 PDF 文档中。 这使得动态生成 PDF 发票、报告和其他基于文档的输出成为可能。

PDF 的安全性

您可以通过使用IronPDF 加密PDF文档添加密码安全,来管理访问权限并保护关键数据。

PDF 格式

通过 IronPDF,用户可以通过创建、填写和提交 PDF 表单来处理 PDF 文档,以及将数据输入到表单字段中。

文本收获

IronPDF是一种工具,通过从PDF文档中提取文本信息来帮助进行文本数据操作、分析和搜索。

转换为图片格式

IronPDF 在需要照片而不是 PDF 的情况下非常有用,因为它可以将 PDF 文档转换为常见的图片格式,包括 PNG、JPEG 和 BMP。

安装 IronPDF

使用 .NET CLI 或 NuGet 包管理器将IronPDF的最新版本添加到您的项目中。

dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
$vbLabelText   $csharpLabel

将 IronPdf 与 IdentityServer4 整合 C&num;

在Startup.cs文件中为IdentityServer4设置所需的服务和中间件。 然后创建一个名为 PdfController.cs 的新 MVC 控制器,使用 IronPdf 处理 PDF 生成。

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.Threading.Tasks;
[Authorize]
public class PdfController : Controller
{
    public async Task<IActionResult> GeneratePdf()
    {
        // Create IronPDF Renderer
        var Renderer = new IronPdf.ChromePdfRenderer();
        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>";
        // Convert HTML to PDF asynchronously
        var pdfDocument = await Task.Run(() => Renderer.RenderHtmlAsPdf(htmlContent));
        // Return the PDF as a file
        return File(pdfDocument.BinaryData, "application/pdf", "example.pdf");
    }
}
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.Threading.Tasks;
[Authorize]
public class PdfController : Controller
{
    public async Task<IActionResult> GeneratePdf()
    {
        // Create IronPDF Renderer
        var Renderer = new IronPdf.ChromePdfRenderer();
        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>";
        // Convert HTML to PDF asynchronously
        var pdfDocument = await Task.Run(() => Renderer.RenderHtmlAsPdf(htmlContent));
        // Return the PDF as a file
        return File(pdfDocument.BinaryData, "application/pdf", "example.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用IdentityServer4设置安全的用户身份验证和授权,然后使用IronPDF创建只有通过身份验证的用户才能访问的PDF文档,这就是在C#应用程序中将IronPDF与IdentityServer4集成的过程。 所提供的代码示例在Startup.cs文件中配置了IdentityServer4,通过内存配置来处理用户身份管理,并处理客户端凭证。

由于受 [Authorize] 属性保护,仅授权用户可以访问 PdfController 的操作。 该控制器使用异步方法,使用 IronPDF 库将 HTML 信息渲染为 PDF 格式。 PDF 生成过程的步骤是构建一个 ChromePdfRenderer 渲染器; 将HTML文本转换为PDF文档; 并将 PDF 作为文件回复发回。

为了将强大的安全性与动态文档生成功能结合起来,集成将 PDF 生成逻辑嵌入到一个安全端点中,保证只有经过 IdentityServer4 验证的用户才能启动 PDF 创建。 这种方法尤其适用于需要安全处理文档的应用程序,包括创建发票、报告或基于用户特定信息的定制内容,同时通过 IdentityServer4 实施严格的访问控制。

IdentityServer .NET(开发人员如何使用):图7 - 使用 IronPDF 生成的输出 PDF,通过 IdentityServer4 提供安全的用户身份验证和授权。

结论

总之,在C#项目中将IdentityServer4IronPDF集成,成功地将强大的安全性与创建动态PDF的能力结合在一起。 通过提供一种统一的标准化方法来管理多个应用程序和服务中的用户身份和访问控制,IdentityServer4保证了安全的用户身份验证和授权。 通过使用IronPDF,开发人员可以基于已验证的用户数据生成仅授权用户可访问的高质量PDF文档。

这种集成提高了应用程序的安全性和功能性,非常适合创建发票、报告和个性化内容等需要安全文档处理的场景。 综上所述,将IdentityServer4IronPDF结合使用,为在.NET框架内创建安全、高效、以用户为中心的应用程序提供了一种强有力的选择。

IronPDFIron Software技术集成到您的企业应用程序开发堆栈中时,IronPDF可以为客户和最终用户提供功能丰富的开发者文档和高级软件解决方案。 这一坚实的基础还将使项目、后端系统和流程改进变得更加容易。

IronPDF Suite,是9种不同.NET API产品的组合,提供具竞争力的授权价格

这些技术因其丰富的文档、活跃的在线开发者社区和定期升级而成为现代软件开发项目的绝佳选择。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
OData C#(对开发人员如何工作)
下一步 >
Flurl C#(它如何为开发人员工作)