2014-02-09 1 views
5

저는 웹 개발에 익숙하지 않습니다. 이제 ASP.NET ID로 ASP.NET MVC 5를 배웁니다. 내 상황에서 조언을 해 줄 수 있습니까?ASP.NET ID에서 다른 사용자 유형을 만드는 방법은 무엇입니까?

내 사이트에서 몇 가지 유형의 사용자를 갖고 싶습니다. 역할 판매자

그들 각각의 로그인 정보를 자신의 일부를 제어 이제

(예 : 구매자, 자신의 정보를 변경 요청을 추가 판매자는 자신의 정보를 변경하고 상품을 추가 할 수 있습니다.) 할 수 있습니다. 예를 들어 , 내가 그런 일을 만들 :

using Microsoft.AspNet.Identity.EntityFramework; 
using System.Data.Entity; 

public class ApplicationUser : IdentityUser 
{ 
    public int? BuyerId { get; set; } 
    public int? SellerId { get; set; } 

    public virtual Buyer Buyer { get; set; } 
    public virtual Seller Seller { get; set; } 
} 

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection") 
    { 
    } 

    ... 

} 

우리는 사용자를 만들 때 그가 역할을 "역할"일부 구매자 재산 (와 판매자가 null가됩니다 것입니다 구매자가 있다면 그는 예를 들어 정보 (일부 역할과 속성을 가져) .

일반적인 방법입니까?

는 UPDATE :

나는 (판매자와 구매자와) 나쁜 예를 포착 생각합니다. 사용자의

  1. 첫 번째 유형, 자신에 대한 정보를 추가하고이 추가 일부 항목 (예 : 과일) 사용자의
  2. 둘째 유형을 찾을 수 있습니다 : 내 경우에는 내가 권고가 시스템 (또 다른 예)처럼 뭔가를 (추가 정보) 항목 (예 : 사과, 배, 포도. 기타 (사용자의 두 번째 유형은) 야채를 추가) 사용자의
  3. 마지막 유형, 몇 가지 추가 정보를 추가 할 수 있습니다 (예 : 도시)

시스템 추가 정보를 기반으로 사용자의 기호 (일부 야채 또는 과일)를 결정할 수 있습니다. 사용자에 관한 정보 (예 : 최근 경험 등) 및 항목 (종류, 비용 등)

답변

12

아니요. 어떻게 처리 할 것인가가 아닙니다. 사용자는 사용자입니다. 기능면에서 진정한 차이가 있다면 역할을 사용할 수 있지만 설명하는 것과 같은 대부분의 시스템에서 "구매자"또는 "판매자"가되는 것이 실제로는 흑백이 아닙니다. 물건을 사는 사람들은 결국에는 팔고 싶어하고, 판매자는 실제로 뭔가를 사고 싶어 할 수도 있습니다. 내 추천은 어떤 구별도 전혀하지 않는 것입니다. 다른 사람이 판매하기 전에 승인 프로세스 또는 무언가를 갖고 싶다면 "판매자"역할 만 사용하면 해당 역할에 추가 된 사람 만 판매자 옵션을 볼 수 있습니다.

구매자 또는 판매자가되는 고유 한 정보를 저장해야하는 경우 사용자 모델에 추가 속성을 추가하는 것보다 훨씬 유연한 클레임을 사용할 수 있으며 실제 외래 키를 만드는 것보다 훨씬 더 유연한 클레임을 사용할 수 있습니다 추가 데이터를 저장하는 관계.

+0

예, 사용자가 고유하게되기를 원합니다. 내 게시물을 업데이트했습니다 (작업의 다른 예가 추가되었습니다). "주장"에 대한 아이디어에 감사 드리며, 나는이 문제를 더 자세히 살펴볼 것입니다. – chromigo

+2

다시 말하지만, 이것이 역할과 소유권 주장이있는 것입니다. ASP.NET ID는 실제로 사용자의 컨셉을 정당화하기 위해 계정을 인증해야하는 번거 로움을 줄여줍니다. 사용자가 수행 할 수있는 모든 비즈니스 로직은 역할별로 처리되어야하며 사용자가 소유하고있는 모든 논리를 클레임으로 처리 할 수 ​​있어야합니다. –

0

이 문제를 처리하는 Microsoft의 표준 및 방법 인 회원 및 역할 파트너를 살펴보십시오.

두 가지 옵션 중 하나를 선택할 수 있습니다.

  1. If you want to take the easy way you use Microsofts standard way of storing users and roles in a SQL Database, and you get a Web User Management for that.

  2. 이미 사용자 시스템에서 사용자 및 역할을 많이 가지고 있다면, 당신이 당신의 기존 사용자 및 역할을 매핑 할 수있는 사용자 정의 membership- 및 roleproviders를 작성 보길 원하는 것일 수도 당신이 당신의 위치에서하고 싶은 무엇. See an example of this here.

+3

OP는 ASP.NET ID를 사용하므로 멤버쉽 및 역할 공급자가 적용되지 않습니다. –

+1

네, 물론 당신이 맞습니다. 나의 대답은 조금 오래된 학교였다. 작년부터이 새로운 개발 ASP.NET Identity에 대해 알지 못했습니다. 좀 더 배우려면이 기사 (http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity)를 읽어야합니다. –

관련 문제