2011-03-31 48 views
9

我在ASP.NET MVC3中創建網站(足球,足球),我希望有用戶(其他信息,然後用戶在默認會員,這些是普通遊客)和球員,我認爲這是最好的他們會繼承用戶,並有一些附加信息作爲着裝號碼...玩家也可以發佈文章,用戶可以評論文章。什麼是最好的方式來做到這一點?我應該使用默認會員提供商還是應該自己製作或使用一些第三方解決方案?你可以發表一些文章和教程改變原來的提供者或文章,爲自己的asp.net MVC3的提供者?或者它與MVC2相同?是否自定義會員資格

回答

5

創建您自己的會員供應商非常容易。只需創建從MembershipProvider派生的類。並實現查看DB的成員,例如(或任何其他數據源)。

public class YourMembershipClass: MembershipProvider 
{ 
    public override bool ValidateUser(string username, string password) 
    { 
     return YourDataLayer.ValidateUser(username, password); 
    } 
    public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) 
    { 
     return YourDataLayer.GetSpecificUser(providerUserKey, userIsOnline); 
    } 
    // Implement the other methods as well 
} 

然後你YourMembershipClass添加到web.config中:

<membership defaultProvider="MlgMembership"> 
    <providers> 
    <clear /> 
    <add name="CustomMembership" type="YourMembershipClass" enablePasswordRetrieval="false" />  
    </providers> 
</membership> 
1

看看這個soccer俱樂部網站asp.net入門套件。

0

我建議實施您自己的會員供應商,這意味着只實施您需要的位,併爲您的所有用戶管理奠定基礎。

成員資格提供程序對於WebForms和MVC是一樣的,在SO和Google上有很多例子。

2

如果您正在尋找例如存儲配置文件類型的信息名字,姓名,職稱等,然後你應該可以使用內置於ASP.NET Membership中的Profile系統。如果您想要存儲更多與身份相關的信息,那麼您需要創建某種自定義會員供應商。在ASP.NET網站上創建自定義提供商的視頻很好:http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider

關於允許不同類型的用戶執行不同的操作,您可以使用ASP.NET Membership中內置的Roles系統。您可以告訴您的操作方法只允許來自特定角色的用戶的呼叫。例如,如果你有一個PostArticle操作方法,你只希望玩家能夠訪問它,你就會有這樣的事情:

[Authorize(Roles="Player")] 
public ActionResult PostArtcile(){ 
    return View(); 
} 

Authorize屬性告訴MVC只允許通過認證的用戶,在「播放器」的作用調用操作方法。您仍然需要限制前端文章鏈接的可用性,但有幾種方法可以做到這一點。

有一個偉大的系列賽的斯科特·米切爾的文章涵蓋了所有事情的會員制:http://www.4guysfromrolla.com/articles/120705-1.aspx

1

我建議你:

  • 使用會員提供商只是處理 具有用戶註冊和 認證。並讓它照顧用戶安全的東西(休息密碼,驗證用戶....)

  • 然後使用角色的 用戶分開,他們的角色(「玩家, normalUsers,..」)。

  • 而且NEVER利用檔案提供 導致它的成本這麼多的流量,你 不想,而不是你能 使數據庫自定義表 儲存您的附加信息和。

  • 然後,您可以使用EF或任何ORM獲取 這個信息,只要你想。

  • 不要忘記在控制器和操作中使用授權屬性[Authorize(Roles="Players")],這些授權屬性將在角色上消失。
相關問題