跳至页脚内容
.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# 应用程序中执行身份管理、授权和身份验证。 它符合现代安全协议,如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。 然后点击创建。](/static-assets/pdf/blog/identityserver-net/identityserver-net-4.webp)

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

IdentityServer .NET(如何为开发人员工作):图 5 - ASP.NET Core Web App (MVC) 项目成功创建。 ](/static-assets/pdf/blog/identityserver-net/identityserver-net-5.webp)

要测试代码,请添加必要的库。

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

使用.NET CLI或Visual Studio中的NuGet包管理器,将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();
    }
}
$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; }
}
$vbLabelText   $csharpLabel

使用 IronPDF 开始使用 IdentityServer4

使用 IronPDF 开始使用 IdentityServer4

这些说明将指导您配置 IdentityServer4 以进行安全认证和授权,并使用 IronPDF 在 C# 项目中创建 PDF 文档。 IronPDF是一个功能丰富的用于与.NET应用程序中的PDF文档交互的库。

什么是 IronPDF?

IronPDF 是一个功能丰富的库,用于在.NET应用程序中与PDF文档交互。 IronPDF 为开发人员提供强大的API,用于生成、修改和转换PDF文件,简化.NET应用中的PDF处理。 IdentityServer .NET (如何为开发人员工作): 图 6 - IronPDF for .NET: The C# PDF Library

HTML 到 PDF 转换

IronPDF 的主要功能

使用 IronPDF,您可以通过 使用 HTML 内容(包括JavaScript和CSS)生产高质量的PDF文档。

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

修改和增强PDF

即时创建 PDF

使用 IronPDF 的 API,您可以以编程方式将文本、图像、形状和其他对象添加到新创建的PDF文档中。

这使得动态PDF生成发票、报告和其他基于文档的输出变得可能。 您可以通过加密PDF文档添加密码保护来管理访问权限和保护敏感数据。

PDF 安全

PDF 表单

IronPDF允许用户创建、填写和提交PDF表单,以及将数据填充到表单域中。

IronPDF通过从PDF文档中提取文本信息助于文本数据操作、分析和搜索。

文本提取

转换为图像格式

IronPDF可以将PDF文档转换为常见的图像格式,如PNG、JPEG和BMP,这在需要图像而不是PDF时非常有用。

IronPDF可以将PDF文档转换为常见的图像格式,如PNG、JPEG和BMP,这在需要图像而不是PDF时非常有用。

安装IronPDF

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

Install-Package IronPdf

在上面的代码中示例中,在Startup.cs文件中设置IdentityServer4的所需服务和中间件。

然后创建一个名为PdfController.cs的新MVC控制器,以处理使用 IronPDF 进行的 PDF 生成。 然后创建一个名为 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");
    }
}
$vbLabelText   $csharpLabel

将IronPDF与IdentityServer4集成涉及首先使用IdentityServer4设置安全用户身份验证和授权,然后使用IronPDF创建仅经身份验证用户可访问的PDF文档。 PdfController使用[Authorize]属性进行防护,确保只有授权用户才能访问其操作。

PdfController[Authorize] 特性保护,确保只有授权用户才能访问其操作。 该 PDF 生成过程涉及创建 ChromePdfRenderer 渲染器,将HTML 内容转换为 PDF 文档,并将 PDF 作为文件响应返回。 该PDF生成过程涉及创建一个ChromePdfRenderer渲染器,将HTML内容转换为PDF文档,并将PDF作为文件响应返回。

这个设置对需要安全文档处理的应用程序特别有利,例如生成发票、报告或基于用户特定信息的自定义内容,同时通过IdentityServer4实施严格的访问控制。 IdentityServer .NET (如何为开发人员工作): 图 7 - 使用IronPDF生成的输出PDF,由IdentityServer4提供安全的用户身份验证和授权。

总之,在 C# 项目中集成 IdentityServer4IronPDF 有效地将强大的安全性与动态PDF生成功能结合在一起。

结论

总之,将 IdentityServer4IronPDF 集成到 C# 项目中,有效地结合了强大的安全性和动态 PDF 生成能力。 使用IronPDF,开发人员可以创建仅对经过身份验证的用户可访问的高质量PDF文档,所有这些都基于经过验证的用户数据。 使用 IronPDF,开发人员可以生成仅供经过身份验证的用户访问的高质量 PDF 文档,所有这些都是基于经过验证的用户数据。

总体而言,IdentityServer4IronPDF 的组合为在 .NET 框架内开发安全、高效和面向用户的应用程序提供了一个有吸引力的解决方案。 当IronPDF和Iron Software技术集成到您的企业应用开发栈中时,IronPDF能够为客户和终端用户提供功能丰富的开发文档和高级软件解决方案。

IronPDFIron Software 技术集成到您的企业应用开发堆栈时,IronPDF 可以为客户和最终用户提供功能丰富的开发者 文档 和优质软件解决方案。 IronPDF套件,结合了9种不同的.NET API产品,以具有竞争力的许可价格提供!

Iron Suite是 9 种不同 .NET API 产品的组合,以 具有竞争力的许可价格提供! 这些技术拥有全面的文档、活跃的在线开发者社区和定期更新,是现代软件开发项目的绝佳选择。

常见问题解答

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使开发人员可以有效地管理令牌。它提供了发行、验证和撤销令牌的功能,这对于根据用户认证状态控制对应用程序资源的访问至关重要。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,是 C# PDF 技术的先锋工程师。作为 Iron Software 核心代码库的原始开发者,自公司成立以来,他就塑造了公司的产品架构,并与首席执行官 Cameron Rimington 一起将其转变成一家公司,拥有50多人,服务于 NASA、特斯拉和全球政府机构。

Jacob 拥有曼彻斯特大学 (1998-2001) 的一级荣誉土木工程学士学位。1999 年在伦敦创办了自己的第一家软件公司,并于 2005 年创建了他的第一个 .NET 组件后,他专注于解决微软生态系统中的复杂问题。

他的旗舰 IronPDF 和 Iron Suite .NET 库在全球已获得超过 3000 万次的 NuGet 安装,其基础代码继续为全球使用的开发者工具提供支持。拥有 25 年商业经验和 41 年编程经验的 Jacob 仍专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。