Microsoft 會員提供程序與自定義提供程序與完整的自定義登錄系統
我目前正在將一個非常古老但可以正常工作的經典 ASP 站點轉換為 ASP.Net。
它有一個完全定制的書面使用者管理系統。雖然它執行良好,但它確實需要更新,因為我希望它對未來的一些項目更加靈活。
當我問這個問題時,他們說“你需要使用 Microsoft Provider”,並就微軟如何免費發布所有這些東西以及它們有多好並且應該盡可能多地重複使用進行了演講。
我已經對它進行了相當多的研究(主要是看<http://asp.net/learn>上的影片),並且對其中一些功能印象深刻,因為似乎有拖放組件用於需要的項目我的年齡來寫。
但是,目前的會員數據庫解釋起來很複雜,它是一個完全自定義編寫的數據庫,內部關係很多……它與預設的 Microsoft Provider 並不真正“兼容”。
我查看瞭如何:創建自定義成員資格提供程序?,但我覺得有點脫離了我的舒適區,擔心它要麼會很慢,要麼會引入安全漏洞,要麼根本不起作用。
歸根結底,Microsoft Membership Provider 應該為我工作 - 我真正需要的唯一自定義是登錄以使用我的數據庫中的使用者名/密碼欄位和創建使用者腳本,其中包含很多自定義程式碼到三分之一政黨系統(需要提供服務等)。
我只是想知道,如果遇到類似的情況,你會怎麼做?
- 使用 Microsoft Membership Provider 並以某種方式讓它為您工作(儘管我想要建議)
- 使用 Microsoft Membership Provider,但使用圍繞您的程式碼自定義的自定義提供程序。
- 使用您自己的完全定制的解決方案?
該影片確實使事情複雜化:)如果您要實現自定義提供程序,那麼現有提供程序的反射器是一個不錯的起點:)
當然,作為一種快速而骯髒的選擇,您可以破解 SQL 成員資格提供程序使用的儲存過程,但用於提供服務的自定義程式碼可能會擴展它。
如果您考慮一下,服務的遠端供應並不真正屬於會員提供者,它並不是真正的會員功能 - 所有會員所做的只是提供使用者名和密碼以及圍繞它們的身份驗證。我自己的感覺是,您應該將服務供應移出那裡,並在創建使用者後在 ASP.NET 站點上執行它——即使這只是在成員資格提供者完成它的事情后呼叫儲存過程。如果您這樣做,您可能會發現 SQL 成員資格提供程序將完成您需要它做的所有事情(可能也使用角色和配置文件提供程序),因此您可以編寫更少的程式碼!