2017-05-15 84 views
1

我有一個MVC應用程序(.Net Framework 4.5),它在過去的三年中一直使用Forms Authentication機制。現在我們想要在Okta的幫助下集成SSO功能。使用KentorIT身份驗證服務,我能夠將Okta與我的mvc應用程序集成。其中,所有配置都在web.config文件中設置(例如:entityId,signOnUrl等)。有沒有辦法編程配置這些sso設置?我發現KentorAuthServicesSection是我們必須實例化來完成此過程的類。目前它從配置文件讀取設置。使用kentor以編程方式配置sso設置

public class KentorAuthServicesSection : ConfigurationSection 
{ 
     private static readonly KentorAuthServicesSection current = 
      (KentorAuthServicesSection)ConfigurationManager.GetSection("kentor.authServices"); 
} 

所以修改此ConfigurationManager.GetSection(「kentor.authServices」)部分有一個自定義實現將做的工作?或者還有其他的好方法嗎?

回答

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

+0

感謝您的幫助。它工作完美。你可以看看這個問題(http://stackoverflow.com/questions/44005770/identify-okta-account-on-sign-in)與此有關嗎?提前致謝 – Dennis