使用kentor以编程方式配置sso设置

时间:2017-05-15 13:02:40

标签: okta kentor-authservices

我有一个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")部分可以完成这项工作吗?还是有其他好方法吗?

1 个答案:

答案 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