簡體   English   中英

umbraco身份驗證

[英]umbraco authentication

我有一個現有的社區后端,我喜歡使用Umbraco作為我的表示層。 如何使用.Net表單身份驗證實現登錄/注銷? (我不想使用會員功能)。 我有不同類型的用戶可以訪問不同類型的頁面。 我該怎么控制呢? 用戶控制?

Umbraco為其成員系統使用ASP.NET成員/角色提供程序模型,並且為您自己的實現交換默認的一個非常簡單的步驟。 我之前已經完成了這項工作,我希望針對Active Directory商店對成員進行身份驗證,但我無法想象對自定義數據庫進行身份驗證會更加困難。

這樣做的好處是可以與Umbraco會員系統完全集成,通過使用自定義角色提供程序,編輯人員可以使用內置的頁面編輯工具限制頁面,而不必使用自己的安全控件。 。

您應該能夠通過擴展UmbracoMembershipProvider類並重寫ValidateUser方法來創建簡單的成員資格提供程序。 我自己沒有這樣做,但我知道有其他人。

要對自定義角色提供程序進行身份驗證,您需要創建一個派生自RoleProvider的類。 您將要覆蓋的方法是 - IsUserInRoleFindUsersInRoleGetAllRolesGetRolesForUser

這是Scott Guthrie 博客文章的鏈接,其中提供了有關提供者API的更多信息,而不是您需要知道的信息,包括默認提供者的源代碼。

我在umbraco網站上使用了兩種方法。 這兩種方法都包括用於登錄和注銷的用戶控件,這些控件負責使用自定義解決方案和清除憑證分別對用戶進行身份驗證。 對於這兩種方法,我還為我想要保護的任何文檔類型添加了umbracoMembersOnly屬性。

在第一種方法中,我檢查了每個單獨的模板,以查看用戶是否被限制訪問。 為了抽象,我使用isMember或isLoggedIn方法創建了一個siteuser類,該方法在站點范圍內可用,並且可以從XSLT或用戶控件宏調用。 這種方法的好處是我可以在每個模板上定制自定義消息,而不是僅僅提供相同的訪問被拒絕頁面。

第二種方法 - 我現在支持的方法 - 如果創建一個Permissions宏,負責檢查用戶訪問任何頁面的權限(即檢查umbracoMembersOnly屬性,如果為true,則檢查會話變量)。 此宏包含在主模板中,因此在每個模板上執行。 如果用戶沒有訪問當前頁面的權限,我會重定向到同一頁面,但是在查詢字符串后附加了?alttemplate = RestrictedPage或類似內容。 (確保您的Permissions宏在查詢字符串中檢查alttemplate = RestrictedPage,否則您將進入無限循環的重定向。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM