限制在 ASP.NET Core 的受保护负载的生存期Limit the lifetime of protected payloads in ASP.NET Core

    为了使我们的开发人员受众更容易,包包含用于创建在设定的时间段后自动过期的有效负载的实用工具 api。这些 Api 挂起 类型。

    ITimeLimitedDataProtector 接口是用于保护和取消保护时间限制/自过期负载的核心接口。若要创建 ITimeLimitedDataProtector的实例,首先需要使用特定用途构造的常规IDataProtector的实例。 实例可用后,调用 IDataProtector.ToTimeLimitedDataProtector 扩展方法以获取具有内置过期功能的保护程序。

    ITimeLimitedDataProtector 公开以下 API surface 和 extension 方法:

    • CreateProtector (string 目的): ITimeLimitedDataProtector-此 API 类似于现有 ,因为它可用于从根时间限制的保护程序创建。

    • 保护(byte [] 纯文本): byte []

    • 保护(字符串纯文本、DateTimeOffset 过期):字符串

    • 保护(字符串纯文本):字符串

    除了使用纯文本的核心 Protect 方法之外,还有一些新的重载,可用于指定有效负载的到期日期。可以将到期日期指定为绝对日期(通过 DateTimeOffset)或指定为相对时间(从当前系统时间起,通过 )。如果调用不带过期的重载,则假定负载永不过期。

    • Unprotect(byte[] protectedData) : byte[]

    • 取消保护(string protectedData):字符串

    Unprotect 方法返回未受保护的原始数据。如果负载尚未过期,则将以可选的 out 参数形式返回绝对过期,并将其作为不受保护的原始数据。如果有效负载已过期,则解除保护方法的所有重载都将引发 System.security.cryptography.cryptographicexception。

    警告

    下面的示例使用非 DI 代码路径来实例化数据保护系统。若要运行此示例,请确保首先添加了对 AspNetCore 包的引用。