對於MVC 2項目的默認成員資格提供程序,我可以參考User.Identity.UserName
按照默認情況下創建的任何項目。我不想這樣做 - 想用我自己的表格。所以,我實現了System.Web.Security.MembershipProvider類。我實現了,按照在網絡上和那麼多帖子的唯一的事情,是ValidateUser(string username, string password)
如何引用我自己的表與MVC Controller.User屬性?
我可以很容易地看到這種接受的用戶名和密碼字符串,訪問我的數據庫上下文(LINQ到實體,實際上dotConnect提供商MySQL),並檢查用戶名和密碼 - 很簡單。
但是,我怎麼能做出Controller.User對象用我自己的表的屬性。例如,我的表叫做Staff。它有StaffID(PK),FirstName,LastName等。我如何訪問當前上下文用戶的StaffID如下?
int id = User.StaffID;
我發現這個職位由Matt Wrock,但我真的不能執行用戶類,特別是IsInRole方法的意義。這個對象何時構造,構造函數參數從何而來?
你將如何 「鉤到實際的認證過程」?你的意思是在MembershipProvider的ValidateUser方法中嗎? – 2010-11-23 22:53:59
你會在HttpModule中實現OnAuthenticate事件,並在那裏做你的東西。僅供參考 - 堅持使用ASP.NET提供的認證機制比從事完全不同的工作更好(從長遠來看)。這是定義你自己的GenericPrincipal後裔,並沿着這條路線比完全避免它更好。成員資格提供者只是ASP.NET內置機制的一個實現。如果它不適合你,只需實施你自己的。從長遠來看,它將會付出很大的代價。 ASP.NET/WCF應用程序具有相同的基礎結構 – 2010-11-24 20:38:09