2011-12-23 94 views
0

創建新的Silverlight 5.0業務應用程序時,會自動生成驗證和授權碼。所有用戶信息和角色默認保存在aspnetdb mdf文件中。我的問題是:使用ASP.NET處理用戶授權

  1. 是正常的做法,從您的業務有關的數據保留用戶授權/認證數據在單獨的數據庫,或者我應該將表複製到我的主數據庫?我看到當前的實現涉及到ApplicationId字段,所以這意味着它可以存儲不同應用程序的數據?也許在所有Web應用程序的Web服務器上都有一些公用數據庫(只是猜測)? :)

  2. 如果我要保持用戶的信息在一個單獨的數據庫中,如何關聯這兩個數據庫之間的數據?我的意思是,我會在某些表格(業務規則)中引用UserId?我的業務數據是使用身份PK和aspnetdb使用UniqueIdentifier,這是一個問題?

  3. 當用戶在網站上註冊時,我們如何在生產中分配角色?在Visual Studio中有一個ASP.NET配置工具,但生產環境如何?這應該在Web項目中編碼嗎?

  4. 在應用程序始終需要驗證的情況下,處理用戶授權/驗證的最佳做法是什麼?

回答

2

你不應該使用ASP.NET defaut身份認證實施方案在生產應用:它使用本地數據庫(MDF文件),因爲它的工作原理開箱。然而,你是不是該解決方案的限制:

  • 你可以配置ASP.NET驗證(和角色)提供商使用真實的數據庫,讓您更好地集成到現有的數據。爲了更好地理解整個過程,請參閱http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx和鏈接的頁面。 ASP.NET能夠自己在你的數據庫中生成所有必需的表。

  • 你可以用你自己的方式覆蓋默認的認證機制。在這種情況下,您只需編輯Web應用程序項目中的Services/AuthenticationService.cs。 AuthenticationService類繼承自AuthenticationBase,並允許您用自己的實現覆蓋相當多的成員資格方法。