我正在尝试IAuthenticationSchemeProvider
在 ASP.NET Core 和 Sustainsys.Saml2 库中使用动态添加 SAML2 身份验证方案:
schemeProvider.AddScheme(new AuthenticationScheme("myAuthScheme", "myAuthScheme", typeof(Saml2Handler)));
除了这个方案,我还需要配置Saml2Options
它。我正在尝试这样IOptionsMonitorCache<Saml2Options>
做:
samlOptionsCache.TryAdd("myAuthScheme", options);
然后,当我尝试使用此方案进行身份验证时,出现以下错误:
NullReferenceException:对象引用未设置为对象的实例。Sustainsys.Saml2.WebSso.Saml2Urls..ctor(HttpRequestData request, IOptions options) Sustainsys.Saml2.WebSso.SignInCommand.Run(EntityId idpEntityId, string returnPath, HttpRequestData request, IOptions options, IDictionary relayData) Sustainsys.Saml2.AspNetCore2.Saml2Handler。 ChallengeAsync(AuthenticationProperties 属性)
所以看起来这些属性从未与该方案相关联。
我不确定我是否会走上正确的道路。是否可以以这种方式动态注册方案?