我有一个MVC应用程序(.Net Framework 4.5),它在过去三年里一直存在并使用表单身份验证机制。现在我们想在Okta的帮助下集成SSO功能。使用KentorIT身份验证服务,我能够将Okta与我的mvc应用程序集成。其中,所有配置都在web.config文件中设置(例如:entityId,signOnUrl等)。有没有办法以编程方式配置这些sso设置?我发现KentorAuthServicesSection是我们必须实例化以完成该过程的类。目前它正在从配置文件中读取设置。
public class KentorAuthServicesSection : ConfigurationSection
{
private static readonly KentorAuthServicesSection current =
(KentorAuthServicesSection)ConfigurationManager.GetSection("kentor.authServices");
}
因此,使用自定义实现修改此ConfigurationManager.GetSection(" kentor.authServices")部分可以完成这项工作吗?还是有其他好方法吗?
答案 0 :(得分:1)
您可以直接使用选项类 - 无需自定义GetSection
。
我假设你正在使用Mvc模块。在这种情况下,您希望在应用程序启动期间在AuthServicesController上设置选项,例如
Kentor.AuthServices.Mvc.AuthServicesController.Options = myOptions;
使用您自己构建的这些相同的配置类。例如:
var spOptions = new SPOptions
{
EntityId = new EntityId("http://localhost:57294/AuthServices"),
ReturnUrl = new Uri("http://localhost..."),
//...
};
options = new KentorAuthServicesAuthenticationOptions(false)
{
SPOptions = spOptions
};
此构造函数中的false
告诉不从配置系统中读取。
OWIN示例项目中有一个更大的示例: https://github.com/KentorIT/authservices/blob/v0.21.1/SampleOwinApplication/App_Start/Startup.Auth.cs#L54-L82