OAuth 和 OpenID Connect (OIDC) 身份验证处理程序现在提供了一个选项。此功能简化了通常包含在重定向查询字符串中的授权消息参数的自定义。以前,实现此级别的自定义需要实现自定义回调或在自定义处理程序中重写方法。但是,通过最新的改进,开发人员可以更简洁地实现相同的结果。
在早期版本的 .NET 中,实现自定义参数自定义如下所示:
builder.Services.AddAuthentication().AddOpenIdConnect(options =>
{
options.Events.OnRedirectToIdentityProvider = context =>
{
context.ProtocolMessage.SetParameter("prompt", "login");
context.ProtocolMessage.SetParameter("audience", "https://api.example.com");
return Task.CompletedTask;
};
});
现在,通过简化的方法,您可以获得与以下相同的结果
builder.Services.AddAuthentication().AddOpenIdConnect(options =>
{
options.AdditionalAuthorizationParameters.Add("prompt", "login");
options.AdditionalAuthorizationParameters.Add("audience", "https://api.example.com");
});
现在,可以通过 HTTP.sys 的 Windows 身份验证使用 and 属性进行微调。这些属性允许开发人员优化 HTTP.sys 处理身份验证的方式。具体而言,您可以配置以下标志:EnableKerberosCredentialCachingCaptureCredentials
webBuilder.UseHttpSys(options =>
{
options.Authentication.Schemes = AuthenticationSchemes.Negotiate;
options.Authentication.EnableKerberosCredentialCaching = true;
options.Authentication.CaptureCredentials = true;
});