2014-06-23 241 views
0

我正在嘗試爲Sitefinity實現自定義會員供應商。到目前爲止,實際的會員資格(認證,列出用戶等)工作正常。我想要做的就是在網站上設置任何登錄該提供者的權限。例如,可以說自定義提供程序被稱爲CustomerDBMembershipProvider,並假設它從某種單獨的用戶名和密碼存儲庫中獲取記錄。自定義會員供應商的Sitefinity權限

我希望任何使用CustomerDBMembershipProvider登錄的人都可以訪問該站點上的客戶專用頁面。如何限制該頁面,以便只有使用CustomerDBMembershipProvider登錄的用戶才能看到該頁面?

回答

0

首先,我希望我能理解你的問題。我能想到這裏

選項1

  1. 兩個選項創建自定義角色提供,實現GetAllRoles,RoleExists,必須isUserInRole,GetRolesForUser。保留所有可以保留的空方法,拋出new NotSupportedException(); 在此角色提供者中,您可以從您的自定義用戶源獲取每個用戶的角色列表。如果您沒有自定義角色數據庫,那麼您可以硬編碼爲該角色提供者擁有一個固定角色。

  2. 在web.config中將此自定義角色提供程序與sitefinity集成。

  3. 現在您應該在頁面權限管理器中看到其他角色。您現在可以僅限訪問限制頁面的此角色。

選項2

  1. 在sitefinity創建新角色
  2. 將用戶分配了角色。在提供者下拉列表中選擇您的提供者CustomerDBMembershipProvider。將所有用戶分配給此角色。
  3. 更改所需頁面的權限以僅允許此新角色。

使用此方法,無論何時將新用戶添加到自定義源中,都需要將它們映射到在sitefinity中創建的新角色。如果您可以更改您的成員資格提供程序,那麼在ValidateUser函數中,在對用戶進行驗證後,您可以將新創建​​的sitefinity角色添加到用戶。然後,每次創建新用戶時,您都不需要手動在sitefinitiy中映射角色。