2011-03-31 2 views
9

ASP.NET MVC3에서 웹 사이트 (축구, 축구)를 만들고 있는데, 사용자가 기본 멤버쉽에 추가 정보가있는 사용자 (일반 사용자)와 원하는 플레이어가 있어야합니다. 그들은 사용자를 계승하고 복장 번호로 일부 addional iformation을가집니다 ... 플레이어는 기사를 게시 할 수도 있고 사용자는 기사에 댓글을 달 수 있습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 기본 멤버십 공급자를 사용해야합니까, 아니면 제 사이트를 만들거나 제 3 자 솔루션을 사용해야합니까? 그리고 당신은 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 
} 

다음의 Web.config에 YourMembershipClass을 추가

<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 멤버쉽에 Profile 시스템을 사용할 수 있습니다. 더 많은 ID 관련 정보를 저장하려면 예를 들어 맞춤 멤버십 공급자를 만들어야합니다. http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider

다른 유형의 사용자가 다른 작업을 수행 할 수 있도록 허용하려면 ASP.NET 시스템에 Roles 시스템을 사용할 수 있습니다. 특정 역할에 속한 사용자의 전화 만 허용하도록 작업 방법을 알릴 수 있습니다. 예를 들어 당신은 PostArticle 동작 방법이 있고 당신은 당신이이 같은 것 액세스 할 수 있도록 플레이어를 원한다면 :

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

Authorize 속성 만 "플레이어"역할에 인증 된 사용자를 허용하는 MVC 지시를 액션 메소드를 호출합니다. 프런트 엔드에서 게시물 글 링크의 사용 가능 여부를 제한해야하지만 여러 가지 방법이 있습니다.

를 기반으로 모든 것을 회원을 포함 스콧 미첼에 의해 기사의 큰 시리즈가있다 : http://www.4guysfromrolla.com/articles/120705-1.aspx

1

I 조언 당신에게로는 :

    단지 사용자 등록 및 와 을 다루는
  • 를 사용하여 멤버 자격 공급자 입증. 그리고 (".. 플레이어, normalUsers")

  • 그런 다음 자신의 역할에 사용자를 분리하는 역할을 사용하여 (..., 나머지 암호 사용자를 확인)는 사용자 보안 물건을 돌볼 수 있습니다.

  • 그리고 NEVER 사용 정보 제공 당신이 원하는 대신 당신이 저장하여 추가 정보를 데이터베이스에있는 사용자 정의 테이블을 만들 수의하지 많은 트래픽 비용이 발생합니다.

  • 그런 다음 언제든지 EF 나 ORM을 사용하여 정보를 얻을 수 있습니다.

  • 역할에 의존하지 않는 컨트롤러 및 작업에서 승인 속성 [Authorize(Roles="Players")]을 사용하는 것을 잊지 마십시오.