2013-04-17 53 views
0

我有一個WebAPI項目和一個存儲庫層。對於涉及到賬號的方法,我不知道在這裏使用哪種方法:SimpleMembershipProvider vs WebSecurity

public class RepositoryService : IRepositoryService 
    { 
     private readonly SimpleMembershipProvider _membership; 
     public RepositoryService() 
      { 
      _membership = (SimpleMembershipProvider)Membership.Provider; 
      } 

要檢查用戶是否存在:

public bool UserExists(string userName) 
    { 
     return WebSecurity.UserExists(userName); 
    } 

OR

public bool UserExists(string userName) 
{ 
    return _membership.GetUser(userName, true) != null; 
} 

我想知道因爲在其他地方,我認爲我必須使用_membership(例如獲取特定用戶):

public MembershipUser GetUser(string userName) 
    { 
     return _membership.GetUser(userName, false); 
    } 

但我似乎很奇怪我必須使用_membership和WebSecurity。使用兩者有什麼「臭」嗎?

+0

他們應該叫它'LimitedMembershipProvider'或'SimpleMembershipWithConfusingUpgradePathProvider' –

+0

會員發脾氣;在VS2013也是如此。如何重置System.Web.Providers.DefaultMembershipProvider中的密碼。 ** ...您不能使用現有的MembershipProvider(包括System.Web.Providers中的Universal Providers)以及需要SimpleMembershipProvider的API,包括WebMatrix.WebData.WebSecurity或Microsoft.Web.WebPages中的任何調用。 OAuth.OAuthWebSecurity。** [link](http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net- 4-5-web的表單和-ASP淨MVC -4- templates.aspx) – subsci

回答

0

下似乎表明,一切都OK:

從上WebSecurity class MSDN文檔http://msdn.microsoft.com/en-us/library/gg547905%28v=vs.111%29.aspx

的幕後,WebSecurity類與ASP.NET 成員資格提供交互時依次執行 所需的較低級別的工作,以執行安全任務。 ASP.NET Web頁面中的默認成員資格 提供程序是SimpleMembershipProvider類。