Microsoft.Azure.StackExchangeRedis 3.1.0
前缀已保留
dotnet add package Microsoft.Azure.StackExchangeRedis --version 3.1.0
NuGet\Install-Package Microsoft.Azure.StackExchangeRedis -Version 3.1.0
<PackageReference Include="Microsoft.Azure.StackExchangeRedis" Version="3.1.0" />
paket add Microsoft.Azure.StackExchangeRedis --version 3.1.0
#r "nuget: Microsoft.Azure.StackExchangeRedis, 3.1.0"
// Install Microsoft.Azure.StackExchangeRedis as a Cake Addin #addin nuget:?package=Microsoft.Azure.StackExchangeRedis&version=3.1.0 // Install Microsoft.Azure.StackExchangeRedis as a Cake Tool #tool nuget:?package=Microsoft.Azure.StackExchangeRedis&version=3.1.0
ArtifactType: nupkg Documentation: https://learn.microsoft.com/azure/azure-cache-for-redis Language: C# Tags: Redis,Cache,StackExchange.Redis,Microsoft,Azure
Microsoft.Azure.StackExchangeRedis 扩展
Microsoft.Azure.StackExchangeRedis 包是 StackExchange.Redis 客户端库的扩展,它允许使用 Microsoft Entra ID 来验证 Redis 客户端应用程序与 Azure Cache for Redis 资源之间的连接。此扩展从 Azure 托管标识或服务主体获取一个访问令牌,并配置一个 StackExchange.Redis 连接使用该令牌进行身份验证。它还维护该令牌,积极主动地更新它并在几天内重新验证连接,以维护与缓存的无缝通信。
用法
请参阅 sample/Sample.cs,以获取如何使用该扩展在各种支持的认证场景下的详细示例。
高级说明
在你的 Redis 客户端项目中添加对 Microsoft.Azure.StackExchangeRedis NuGet 包的引用。
在你的 Redis 连接代码中,首先创建一个
ConfigurationOptions
实例。您可以使用.Parse()
方法从一个 Redis 连接字符串或缓存主机名创建一个实例。
var configurationOptions = ConfigurationOptions.Parse($"{cacheHostName}:6380");
- 使用此包提供的其中一个 ConfigureForAzure* 扩展方法来配置认证选项
// DefaultAzureCredential
await configurationOptions.ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());
// User-assigned managed identity
await configurationOptions.ConfigureForAzureWithUserAssignedManagedIdentityAsync(managedIdentityClientId);
// System-assigned managed identity
await configurationOptions.ConfigureForAzureWithSystemAssignedManagedIdentityAsync();
// Service principal secret
await configurationOptions.ConfigureForAzureWithServicePrincipalAsync(clientId, tenantId, secret);
// Service principal certificate
await configurationOptions.ConfigureForAzureWithServicePrincipalAsync(clientId, tenantId, certificate);
// Service principal certificate with Subject Name + Issuer (SNI) authentication (Microsoft internal use only)
await configurationOptions.ConfigureForAzureAsync(new AzureCacheOptions
{
ClientId = clientId,
ServicePrincipalTenantId = tenantId,
ServicePrincipalCertificate = certificate,
SendX5C = true // Enables Subject Name + Issuer authentication
});
- 创建连接,传入
ConfigurationOptions
实例
var connectionMultiplexer = await ConnectionMultiplexer.ConnectAsync(configurationOptions);
- 使用
connectionMultiplexer
交互 Redis,就像您通常所做的那样。
运行示例
该 sample 目录包含一个项目,展示了如何使用此扩展支持的多种认证机制连接到 Azure Redis 缓存。您可以从这个示例中借用代码用于自己的项目,或者简单地运行它来测试您的缓存上的认证配置。它将提示您输入使用的认证类型和所需的特定凭证。要运行示例
- 创建一个 Azure Cache for Redis 资源
- 按照使用 Microsoft Entra ID 进行缓存认证中的说明配置您的缓存上的 AAD 认证
- 可选:如果您正在使用
DefaultAzureCredential
进行认证,请确保在运行代码的机器上已登录 Azure 用户,或者已设置环境变量来提供 Azure 凭据。有关详细信息,请参阅:如何使用 .NET Azure SDK 对 Azure 服务进行 .NET 应用认证.
- 可选:如果您正在使用
dotnet run <path to Microsoft.Azure.StackExchangeRedis.Sample.csproj>
,或在 Visual Studio 或您喜欢的 IDE 中运行项目- 按照提示输入您的凭证并测试与缓存的连接
注意:该示例项目在此存储库中使用了 <ProjectReference>
至扩展项目。如果要使用已发布的 Microsoft.Azure.StackExchangeRedis NuGet 包独立运行该项目,请将 Microsoft.Azure.StackExchangeRedis.Sample.csproj
中的 <ProjectReference>
替换为 <PackageReference>
。
贡献
请阅读我们的 CONTRIBUTING.md,其中概述了我们所有政策和程序以及为此项目做出贡献的要求。
版本登记
我们使用 SemVer 进行版本登记。有关可用的版本,请参阅 releases。
许可
本项目受 MIT 许可证的许可 - 请参阅 LICENSE 文件获取详细信息。
产品 | 版本 兼容及额外的计算目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET 标准版 | netstandard2.0 兼容。 netstandard2.1 已计算。 |
.NET 框架 | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Azure.Identity (>= 1.12.0)
- Microsoft.Identity.Client (>= 4.61.3)
- Microsoft.IdentityModel.JsonWebTokens (>= 7.6.2)
- StackExchange.Redis (>= 2.7.33)
-
net6.0
- Azure.Identity (>= 1.12.0)
- Microsoft.Identity.Client (>= 4.61.3)
- Microsoft.IdentityModel.JsonWebTokens (>= 7.6.2)
- StackExchange.Redis (>= 2.7.33)
NuGet 包 (3)
显示依赖于 Microsoft.Azure.StackExchangeRedis 的前 3 个 NuGet 包
包 | 下载 |
---|---|
Microsoft.Azure.WebJobs.Extensions.Redis 此包包含 Redis 的绑定扩展。 |
|
IglooSoftware.Sdk.Caching
Igloo SDK 用于共享常用的方法。 |
|
EndpointDefender
包描述 |
GitHub 仓库
此包未在任何流行的 GitHub 仓库中使用。
版本 | 下载 | 最后更新 |
---|---|---|
3.1.0 | 47,007 | 6/26/2024 |