2013-04-17 2 views
0

Repository 레이어가있는 WebAPI 프로젝트가 있습니다. 계정에 관한 방법, 나는 여기에 사용하는 방법을 잘 모르겠어요 : 나는 궁금하네요SimpleMembershipProvider 대 WebSecurity

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

또는

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

을 : 사용자가 존재하는 경우

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

가 확인하려면 다른 곳에서는 (예를 들어, 특정 사용자를 얻으려면) _ 멤버쉽을 사용해야한다고 생각하기 때문에 :

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

그러나 _membership 및 WebSecurity를 ​​사용해야한다는 것이 이상하게 보입니다. 둘 다 사용하는 것에 대해 "냄새 나는"것이 있습니까?

+0

그들은 'LimitedMembershipProvider' 또는'SimpleMembershipWithConfusingUpgradePathProvider'라고 불러야합니다. –

+0

멤버십 악취; VS2013에서도 마찬가지입니다. System.Web.Providers.DefaultMembershipProvider에서 암호를 다시 설정하는 방법 ** ... WebMatrix.WebData.WebSecurity 또는 Microsoft.Web.WebPages의 호출을 포함하여 SimpleMembershipProvider를 필요로하는 API로 기존 MembershipProvider (System.Web.Providers에있는 유니버설 공급자 포함)를 사용할 수 없습니다. 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-forms-and-asp-net-mvc-4-templates.aspx) – subsci

답변

0

다음은 보인다는 확인을 것을 제안하십시오 WebSecurity class에 대한 MSDN의 문서 http://msdn.microsoft.com/en-us/library/gg547905%28v=vs.111%29.aspx에서

: 장면 뒤에

을의 WebSecurity 클래스는 ASP.NET 멤버 자격 공급자와 상호 작용 보안 작업을 수행하기 위해 하위 작업 인 이 필요합니다. ASP.NET 웹 페이지의 기본 멤버십 은 SimpleMembershipProvider 클래스입니다.

관련 문제