0

在最近的一個Web項目中,我們需要爲Active Directory實現和使用自定義Membership/Role提供程序,因爲我們需要處理一些特定案例。我們沒有創建和使用這些提供商的實際問題,但我們遇到了Episerver的問題。使用自定義MembershipProvider禁用在Episerver中創建/編輯/刪除用戶/角色

由於在系統中創建用戶非常複雜,我們不希望/不能從Episerver的管理界面內部創建/編輯。我們知道這是爲WindowsMembershipProvider完成的,頁面仍然存在,但是這些字段被禁用,並且有一個信息文本通知您此提供程序不支持創建/編輯。它看起來像下面的圖像。

enter image description here

所以,問題是我們如何做到這一點與我們的自定義提供?

回答

1

最後,解決方案很簡單,很容易找到,但很難找到。

Episerver使用字典存儲提供程序的功能,默認情況下會添加默認提供程序(如SqlMembershipProvider和WindowsMembershipProvider)。字典的關鍵是提供者類型(Episerver 6)。

添加新條目的方法是公開的,所以我們只需將以下代碼添加到Global.asax.cs。

protected void Application_Start(object sender, EventArgs e) 
    { 
     RegisterCapabilitiesOnMembershipProviders(); 
    } 

    private static void RegisterCapabilitiesOnMembershipProviders() 
    { 
     ProviderCapabilities.AddProvider(typeof(CustomActiveDirectoryMembershipProvider), new ProviderCapabilitySettings(0,new string[0])); 
     ProviderCapabilities.AddProvider(typeof(CustomActiveDirectoryRoleProvider), new ProviderCapabilitySettings(0, new string[0])); 
    } 

這增加了我們的自定義成員資格和角色提供到字典中沒有的功能,這意味着所有的創建用戶和角色/編輯被禁用。

以下操作可用:更新,創建,刪除。如果你只是想更新,並在您更換0與此:

ProviderCapabilities.Action.Update | ProviderCapabilities.Action.Create 

行動枚舉具有屬性標誌

相關問題