我有一個現有的社區後端,我喜歡使用Umbraco作爲我的表示層。如何使用.Net表單身份驗證實現登錄/註銷? (我不想使用成員功能)。我有不同類型的用戶可以訪問不同類型的頁面。我怎樣才能控制這個?用戶控制?umbraco身份驗證
回答
Umbraco使用ASP.NET成員/角色提供程序模型獲取成員資格系統,這是一個非常簡單的步驟,將默認的一個交換爲您自己的實現。過去我曾經在這裏做過這些工作,我想根據Active Directory存儲對成員進行身份驗證,但我無法想象要對自定義數據庫進行身份驗證會更困難。
這樣做的好處是您可以與Umbraco會員系統完全集成,並且通過使用自定義角色提供程序,編輯人員將能夠使用內置的頁面編輯功能來限制頁面,而不必使用鉤子您自己的安全控制。
您應該能夠通過擴展UmbracoMembershipProvider類並覆蓋的ValidateUser方法來創建一個簡單的成員提供。我自己並沒有這樣做,但我知道其他人。
要針對自定義角色提供者進行身份驗證,您需要創建一個從RoleProvider派生的類。你會想要替換的方法是 - 的isUserInRole,FindUsersInRole,GetAllRoles和GetRolesForUser。
下面是Scott Guthrie blog post的鏈接,它提供了有關提供者API的更多信息,而且您將不需要知道這些信息,包括默認提供者的源代碼。
我在我的umbraco網站上使用了兩種方法。這兩種方法都包括用於登錄和註銷的用戶控件,它們負責使用自定義解決方案對用戶進行身份驗證,並分別清除憑證。對於這兩種方法,我還補充了一個umbracoMembersOnly屬性,用於我想保護的任何文檔類型。
在第一種方法中,我讓每個單獨的模板檢查用戶是否被限制訪問。爲了抽象這一點,我創建了一個site.com類,其中包含isMember或isLoggedIn方法,該方法可在站點範圍內使用,並且可以從XSLT或用戶控件宏中調用。這種方法的好處是我可以在每個模板上定製自定義消息,而不僅僅是提供相同的拒絕訪問頁面。
第二種方法 - 我現在喜歡的 - 如果要創建一個權限宏,它負責檢查用戶訪問任何頁面的權限(即檢查umbracoMembersOnly屬性,如果爲true,則檢查會話變量)。該宏被包含在主模板中,並在每個模板上執行。如果用戶沒有權限訪問當前頁面,我將重定向到同一頁面,但是在查詢字符串後附加了?alttemplate = RestrictedPage或類似內容。 (請確保您的權限宏檢查查詢字符串中的alttemplate = RestrictedPage,否則您將以無限循環的重定向結束。)
- 1. OWIN身份驗證
- 2. Orchard:Facebook身份驗證
- 3. DotVVM身份驗證
- 4. SaaS身份驗證
- 5. WCF身份驗證
- 6. OpenLDAP身份驗證
- 7. Vagrant身份驗證
- 8. SWFUpload身份驗證
- 9. Webservice身份驗證
- 10. Firebase身份驗證
- 11. Mongo身份驗證
- 12. ExtJS身份驗證
- 13. WCF身份驗證
- 14. SOAP身份驗證
- 15. 身份驗證base64
- 16. Rails身份驗證
- 17. Smtp身份驗證
- 18. SymbolSource身份驗證
- 19. WCF身份驗證
- 20. JSF身份驗證
- 21. Django - 身份驗證
- 22. 身份驗證Cookie
- 23. Mongodb身份驗證
- 24. Nagios身份驗證
- 25. 身份驗證Android
- 26. ajax身份驗證
- 27. EWS身份驗證
- 28. Facebook身份驗證
- 29. Onelogin身份驗證
- 30. Clearcase身份驗證
請問你心中對如何創建自己的會員/角色提供者模型詳細點嗎? – 2009-09-30 05:45:10
已經添加了一些有關提供者模型的更多信息,希望能夠幫助您。 – richeym 2009-09-30 09:45:17