簡體   English   中英

將額外信息與ASP.NET MVC成員關聯

[英]Associating extra information with ASP.NET MVC Membership

我不確定我是否應該與MVC做任何不同,但我很好奇在使用成員資格提供程序時,為ASP.NET用戶帳戶添加額外信息的建議方法是什么? 還有如何將此用途與其他實體相關聯。

通常我不打擾配置文件,並且更喜歡向僅引用USERID的表添加額外信息。 ASP.NET MVC方法的好/壞/可接受,或者替代方案是什么?

這是一個很好的問題,也是我一直在努力的問題。 我認為有三種基本方法;

  1. 使用配置文件提供程序 - 這樣可以輕松添加屬性,但很容易執行生成用戶表等操作,尤其是在需要應用過濾器/搜索時。 API只是沒有削減它。

  2. 添加新表(或擴展現有表),然后加入此表。 然后,您需要編寫自己的方法來獲取自定義數據。

  3. 編寫自己的成員資格提供程序,擴展MembershipProvider類。

對於我的上一個項目,我使用了后一種方法 - 我寫了一個非常quck的SQL提供程序,它只實現了創建用戶,身份驗證和更改密碼所需的基本要素。 對於其余的虛擬方法,我只是拋出了一個NotImplementedException

然后我添加了一個新類,它添加了我需要的額外屬性並使其可以通過傳入標准的MembershipUser來實例化。 像這樣的東西:

public static CustomMember GetMember(MembershipUser user)
{
    // Get your custom member
}

這樣你可以在大多數情況下使用標准的MembershipUser,但如果你需要獲得有關當前用戶的更多細節,你可以這樣做:

MembershipUser user = Membership.GetUser();
CustomMember member = CustomMember.GetMember(user);

不過,我有興趣看看其他人的方法是什么。

您使用MVC這一事實不會對您處理會員資格和“用戶數據”的方式產生任何重大影響。

我通常也避免使用ASP.NET配置文件,實際上是默認的ASP.NET成員資格,更喜歡滾動我自己的成員資格提供程序和鏈接到我現有用戶表的“配置文件”模式。

如果您對客戶會員提供商的進一步信息感興趣,請發表評論。

我希望看到關於這個主題的更多反饋以及人們的行為。 我目前在asp.net mvc應用程序中使用標准的asp.net成員資格/角色提供程序系統,並且不喜歡它。

我的方法是改變aspnet_users表並添加一大堆額外的列; CompanyId,StreetAddress等

我存儲了用戶配置文件設置,以了解他們如何在標准配置文件中使用網站 他們使用什么主題,分頁列表顯示多少記錄和其他東西。

正如大多數人所發現的那樣,獲取信息的內外信息是一種痛苦,而且由於序列化,我在大型系統中閱讀的內容可能會成為性能瓶頸。

我傾向於在我的表上滾動,更好地匹配我的應用程序模式,實現自定義sql提供程序,然后在asp.net mvc中編寫一些額外的安全屬性,如果我需要它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM