我們做我們的一些項目,這事,這裏是我們如何完成它的摘要。請記住,這只是一種方法,我們也成功地編寫了我們自己的會員供應商。
我們有3個主要項目:
- Data.project - 類庫
- WebApp.project - MVC應用
- API.project - WCF服務
我們使用內置在.NET會員供應商中,因爲它開箱即用。這給了我們MVC和API項目中的基本註冊,密碼更改,角色管理以及基於角色容易控制的角色權限和訪問控制。
的默認成員資格提供將使用自己的表來存儲用戶數據。
然後,我們創造我們自己的用戶和個人資料表和數據結構的外鍵返回給用戶的.NET membershipId。這使我們能夠靈活地完成我們需要用戶配置文件所做的所有應用程序特定事情,同時仍然允許我們訪問默認提供程序。
認證是直線前進的MVC項目,你現在可以使用.NET成員方法,通過用戶名和密碼進行身份驗證:
if(Membership.ValidateUser(username,password)){
FormsAuthentication.SetAuthCookie(username,password);
}
對於你沒有FormsAuthentication豪華的WCF項目,但您仍然可以使用默認的成員資格提供程序來驗證用戶憑據。
之後你如何處理身份驗證是由你和你的項目,但對於基本需求,我們通常與由WCF服務驗證後返回的認證令牌去。然後,此令牌隨每個WCF請求一起提供,以證明它們已通過驗證,通常位於請求標頭中。
對於WCF我們基地64編碼的用戶名和密碼提交憑據到服務器時,那麼如果成功的話,我們傳回的身份驗證令牌:
string decoded = System.Text.Encoding.UTF8.GetString(System.Convert.FromBase64String(Authmodel));
//convert your string into your authentication model here then
if(Membership.ValidateUser(model.user,model.pass))
{
//return new authentication token
}
我們還包括額外的邏輯註冊過程中打造出了我們的專有用戶和配置文件表,這是在數據項目中處理的,以便WCF和MVC都可以訪問它。
此外,數據處理項目我們的用戶和個人資料表,並在.NET成員提供的表,使得信息能夠通過這兩個應用程序訪問的之間的聯繫。
我意識到這一切都很模糊,但也許它可以幫助您想出一個統一處理身份驗證的選項。如果您對特定部分有任何疑問,請告訴我,我希望這些信息對您有用。
很多用戶意味着什麼?一天1000? 100000? –