2011-03-04 45 views
1

我們已將sitecore與我們的AD集成。我們的用戶有兩個級別的訪問級別2和其他需要提升權限的其他級別。授予用戶的訪問級別由兩個Cookie決定。一個是aspxauto cookie,在30年後(第二級)到期,另一個在會話結束時(所有其他事件也稱爲第四級)到期。 level4 cookie具有用戶所在角色的列表(此列表是AD內用戶角色列表的子集)。Sitecore - 限制用戶的角色

我需要登錄用戶並根據可用的cookie將其添加到角色。

我迄今爲止創建了自己的ADRoleProvider,它覆蓋了GetRolesForUser方法,並且只返回cookie中的角色。但是,這不工作,當我直接進入受保護頁面時,它讓我進入(因爲用戶是AD中的角色 - 即使cookie不存在)。

我無法刪除用戶所在的所有角色,然後在AD中將用戶添加到cookie中指定的角色,原因很明顯。有沒有一種方法可以讓Sitecore認爲用戶不是角色?

-Victor

回答

1

您是否嘗試覆蓋IsUserInRole方法?我認爲Sitecore試圖解決訪問權限時也會使用它。

+0

亞歷克斯,你擊中了腦袋上的指甲。我繼承了LightAD ADRoleProvider並覆蓋了IsUserInRole和GetRolesForUser方法,這與一些IsUserInRoleCache和AccessResultCache清理以及Item解析器之後的自定義管道處理相結合,並且我擁有了我需要的一切。謝謝你的帶領! – VFein