跳至页脚内容
.NET 帮助

IdentityServer .NET(开发者用法)

在当今的软件架构中,安全性至关重要,特别是在用户权限和身份验证方面。 As a top framework for implementing OpenID Connect and OAuth 2.0, IdentityServer4 offers a reliable option for centralized authorization and authentication in distributed networks. 当开发人员使用IronPDF,一个强大的用于PDF生成的C#库,结合安全的身份管理时,可以轻松地将两者结合,创建符合各种应用程序需求的PDF文档。

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

This tutorial will cover the C# integration of IdentityServer4 with IronPDF, showing how to use IdentityServer4 to create secure processes for authorization and authentication and how to use the user identities created to customize IronPDF's PDF document creation. 我们将讨论如何提高C#应用程序的安全性和功能性,从将IdentityServer4配置为集中式身份和身份验证提供者到集成IronPDF进行动态PDF生产。

什么是IdentityServer4 C#?

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

IdentityServer4 本质上是一个集中式身份验证服务器,处理用户标识和权限管理核心身份、有效访问令牌签发和凭证验证。 它使程序员能够将联合身份验证和单点登录(SSO)集成到多个应用程序和服务中,从而为最终用户提供安全无缝的体验。

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

IdentityServer4 的特性

SSO,或单点登录

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

支持 OpenID Connect 和 OAuth 2.0

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

适应性配置

开发人员可以通过对身份验证和权限策略配置的细致控制,将安全设置自定义以匹配特定的应用程序需求。

与 ASP.NET Core 的连接

通过与框架的无缝集成,IdentityServer4 使 ASP.NET Core Web 应用程序和 API 的身份验证变得简单易行。

个性化和适应性

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

用户验证

IdentityServer4 为开发人员提供选择最适合其Web应用程序需求的身份验证机制配置的灵活性。 这些机制包括用户名/密码、社交登录(如谷歌、Facebook等)和外部身份提供者(如Active Directory、Azure AD等)。

授权策略

开发人员可以基于用户角色、声明或其他条件创建细粒度的授权策略,以确保只有授权用户才能访问特定资源或在应用程序中执行特定操作。

令牌管理

IdentityServer4 管理访问令牌、令牌刷新令牌和身份令牌,提供了一种安全的方法来进行用户身份验证和访问受身份服务器保护的资源的权限。

创建和配置

要在Visual Studio中的C#项目中设置IdentityServer4,您必须遵循以下步骤:

在 Visual Studio 中创建一个新项目

启动Visual Studio应用程序后,选择“创建新项目”选项,或选择文件菜单 > 添加 > “新项目”。 接下来,在选择“新项目”后选择“Asp.NET Core Web App (Model-View-Controller)”。 本教程中,该应用程序将用于PDF文档生成。

 related to 在 Visual Studio 中创建一个新项目 “新项目”选项。" /> 然后选择“ASP.NET Core Web App”](/static-assets/pdf/blog/identityserver-net/identityserver-net-2.webp)

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

IdentityServer .NET(如何为开发人员工作):图 3 - 接下来,通过指定项目名称和位置来配置项目。 点击下一步。](#)

决定所需的框架并点击创建按钮。

IdentityServer .NET(如何为开发人员工作):图 4 - 指定其他信息,如框架、身份验证类型,选择是否配置 HTTPs 和启用 Docker。 然后单击创建。](#)

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

IdentityServer .NET(如何为开发人员工作):图 5 - ASP.NET Core Web App (MVC) 项目成功创建。 要测试代码,请添加必要的库。

安装IdentityServer4包

使用Visual Studio中的.NET CLI或NuGet包管理器,将IdentityServer4包添加到您的项目中。

使用包管理器控制台或终端,输入以下命令来安装包的最新版本: #### 在 .NET Core 项目中配置 IdentityServer4

Install-Package IdentityServer4

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

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

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();
    }
}
Imports Microsoft.AspNetCore.Builder
Imports Microsoft.AspNetCore.Hosting
Imports Microsoft.Extensions.DependencyInjection
Imports Microsoft.Extensions.Hosting

Public Class Startup
	Public Sub ConfigureServices(ByVal services As IServiceCollection)
		services.AddIdentityServer().AddInMemoryClients(Config.Clients).AddInMemoryIdentityResources(Config.IdentityResources).AddInMemoryApiScopes(Config.ApiScopes).AddInMemoryApiResources(Config.ApiResources).AddTestUsers(Config.Users)
	End Sub

	Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment)
		If env.IsDevelopment() Then
			app.UseDeveloperExceptionPage()
		End If
		app.UseIdentityServer()
	End Sub
End Class
$vbLabelText   $csharpLabel

对于 IdentityServer4,需要配置客户、身份资源(范围)和 API 资源。

这些配置可以在一个单独的类中定义,如 Config.cs: 通过遵循这些说明,您可以在C#项目中创建和配置IdentityServer4,使其在ASP.NET Core应用程序中启用安全的身份验证和授权。

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

使用 IronPDF 开始使用 IdentityServer4

这些说明将指导您配置IdentityServer4进行安全身份验证和授权,并使用IronPDF在C#项目中创建PDF文档。

These instructions will guide you through configuring IdentityServer4 for secure authentication and authorization and using IronPDF to create PDF documents in a C# project. IronPDF是一个功能丰富的用于与.NET应用程序中的PDF文档交互的库。

什么是 IronPDF? 凭借其广泛的功能集,用户可以从头开始或从HTML内容创建PDF,以及添加、删除或重新安排现有PDF文档的部分。 IronPDF 为开发人员提供强大的API,用于生成、修改和转换PDF文件,简化.NET应用中的PDF处理。 ![IdentityServer .NET (如何为开发人员工作): 图 6 - IronPDF for .NET: The C# PDF Library](/static-assets/pdf/blog/identityserver-net/identityserver-net-6.webp) #### HTML 到 PDF 转换 ### IronPDF 的主要功能 使用 IronPDF,您可以通过 [使用 HTML 内容](/tutorials/html-to-pdf/)(包括JavaScript和CSS)生产高质量的PDF文档。 该功能在从网站或动态内容创建PDF时非常有用。 #### 修改和增强 PDFs IronPDF允许您 [更改现有的PDF文档](/tutorials/csharp-edit-pdf-complete-tutorial/)。您可以将多个PDF合并为一个文档,从PDF中提取页面,并添加文本、图像、水印或注释。 #### 即时创建 PDF 使用 IronPDF 的 API,您可以以编程方式将文本、图像、形状和其他对象添加到新创建的PDF文档中。 这使得动态PDF生成发票、报告和其他基于文档的输出变得可能。 您可以通过[添加密码保护](/examples/security-and-metadata/)来管理访问权限和保护敏感数据。 #### PDF 安全 You can manage access and safeguard sensitive data by [encrypting PDF documents](/examples/encryption-and-decryption/) with IronPDF and [adding password protection](/examples/security-and-metadata/). IronPDF允许用户创建、填写和[提交PDF表单](/examples/form-data/),以及将数据填充到表单域中。 IronPDF通过[从PDF文档中提取文本信息](/blog/using-ironpdf/csharp-extract-text-from-pdf/)助于文本数据操作、分析和搜索。 #### 文本提取 #### 转换为图像格式 IronPDF可以将PDF文档转换为常见的图像格式,如PNG、JPEG和BMP,这在需要图像而不是PDF时非常有用。 使用.NET CLI或NuGet Package Manager,将最新版本的[**IronPDF**](https://www.nuget.org/packages/IronPdf)添加到您的项目中。 ### 安装IronPDF ## 集成 IronPDF 与 IdentityServer4 C# ```shell :ProductInstall ``` 在上面的代码中示例中,在`Startup.cs`文件中设置IdentityServer4的所需服务和中间件。 然后创建一个名为`PdfController.cs`的新MVC控制器,以处理使用 IronPDF 进行的 PDF 生成。 将 IronPDF 与 IdentityServer4 集成涉及首先设置 IdentityServer4 的安全用户身份验证和授权,然后使用 IronPDF 创建仅可通过经过身份认证的用户访问的 PDF 文档。 ```csharp using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using IronPdf; using System.Threading.Tasks; [Authorize] public class PdfController : Controller { public async Task GeneratePdf() { // Create IronPDF Renderer var renderer = new IronPdf.ChromePdfRenderer(); // HTML content to be converted to PDF string htmlContent = "

Hello, IronPDF!

This is a generated PDF document.

"; // 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"); } } ``` 在提供的代码示例中,在`Startup.cs`文件中配置了IdentityServer4,以处理通过内存配置和客户端凭证的用户身份管理。 `PdfController`使用`[Authorize]`属性进行防护,确保只有授权用户才能访问其操作。 该控制器使用异步方法,通过 IronPDF 库将 HTML 内容渲染为 PDF 格式。 该 PDF 生成过程涉及创建 `ChromePdfRenderer` 渲染器,将[HTML 内容](/examples/using-html-to-create-a-pdf/)转换为 PDF 文档,并将 PDF 作为文件响应返回。 通过在安全端点中嵌入 PDF 生成逻辑,只有通过 IdentityServer4 进行身份验证的用户才能发起 PDF 生成,从而将强安全性与动态文档生成功能相结合。 这个设置对需要安全文档处理的应用程序特别有利,例如生成发票、报告或基于用户特定信息的自定义内容,同时通过IdentityServer4实施严格的访问控制。 ![IdentityServer .NET (如何为开发人员工作): 图 7 - 使用IronPDF生成的输出PDF,由IdentityServer4提供安全的用户身份验证和授权。](/static-assets/pdf/blog/identityserver-net/identityserver-net-7.webp) 总之,在 C# 项目中集成 [**IronPDF**](/) 有效地将强大的安全性与动态PDF生成功能结合在一起。 ## 结论 In summary, the integration of [**IdentityServer4**](https://identityserver4.readthedocs.io/en/latest/quickstarts/6_aspnet_identity.html) with [**IronPDF**](/) in a C# project effectively merges robust security with dynamic PDF generation capabilities. 使用**IronPDF**,开发人员可以创建仅对经过身份验证的用户可访问的高质量PDF文档,所有这些都基于经过验证的用户数据。 这种集成增强了应用程序的安全性和功能性,非常适合需要安全文档处理的场景,例如生成发票、报告和个性化内容。 总体而言,[**IronPDF**](/) 的组合为在 .NET 框架内开发安全、高效和面向用户的应用程序提供了一个有吸引力的解决方案。 Overall, the combination of [**IdentityServer4**](https://github.com/IdentityServer/IdentityServer4) and [**IronPDF**](/) provides a compelling solution for developing secure, efficient, and user-oriented applications within the .NET framework. When [**IronPDF**](/) and [**Iron Software**](https://ironsoftware.com/) technologies are integrated into your enterprise application development stack, **IronPDF** can provide feature-rich developer [documentation](/docs/) and premium software solutions for customers and end users. [具有竞争力的许可价格](https://ironsoftware.com/csharp/licensing/)提供! [**IronPDF Suite**](https://ironsoftware.com/csharp/excel/), a combination of 9 different .NET API products, is available for a 由于其全面的文档、活跃的在线开发者社区和定期更新,这些技术是现代软件开发项目的理想选择。 These technologies are excellent choices for modern software development projects due to their comprehensive documentation, active online developer community, and regular updates.

常见问题解答

IronPDF如何在.NET应用程序中用于将HTML转换为PDF?

IronPDF提供诸如RenderHtmlAsPdf的方法,允许开发人员在.NET应用程序中将HTML字符串转换为PDF文档。它还支持将整个HTML文件或URL转换为PDF,使其成为文档转换的多功能工具。

IdentityServer4在保护.NET应用程序中扮演什么角色?

IdentityServer4通过提供集中认证和授权服务在保护.NET应用程序中发挥重要作用。它使开发人员能够实现OpenID Connect和OAuth 2.0等协议,允许安全的用户管理和资源保护。

你能在C#应用程序中集成PDF生成和安全认证吗?

是的,可以在C#应用程序中集成PDF生成和安全认证。通过使用IdentityServer4进行安全认证和IronPDF生成PDF,开发人员可以确保只有经过认证的用户才能访问敏感文档,提高安全性和合规性。

配置IdentityServer4在.NET项目中的步骤是什么?

要在.NET项目中配置IdentityServer4,开发人员需要通过NuGet安装IdentityServer4包,在Startup.cs文件中进行配置,并设置用于认证的客户端。这确保了应用程序可以安全地管理用户身份和权限。

IronPDF如何增强.NET应用程序中的文档安全性?

IronPDF通过允许开发人员添加加密和密码保护等功能来增强文档安全性。这确保PDF中的敏感信息仅授权用户可访问,符合最佳的数据保护实践。

IdentityServer4支持哪些常见的认证方法?

IdentityServer4支持常见的认证方法,如用户名/密码、社交登录和多因素认证。这种灵活性允许开发人员创建安全且用户友好的认证流程,以满足其应用程序的需求。

你如何使用IdentityServer4管理令牌?

IdentityServer4通过支持OAuth 2.0使开发人员可以有效地管理令牌。它提供了发行、验证和撤销令牌的功能,这对于根据用户认证状态控制对应用程序资源的访问至关重要。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。