2011-12-23 7 views
0

새 Silverlight 5.0 비즈니스 응용 프로그램을 만들 때 인증 및 권한 부여 코드가 자동으로 생성됩니다. 모든 사용자 정보와 역할은 기본적으로 aspnetdb mdf 파일에 저장됩니다. 내 질문은 :ASP.NET을 사용한 사용자 권한 처리

  1. 비즈니스 관련 데이터에서 별도의 데이터베이스에서 사용자 권한 부여/인증 데이터를 유지하는 것이 일반적인 관행인가, 아니면 내가 내 주요 데이터베이스에 테이블을 복사해야합니까? 현재 구현에는 ApplicationId 필드가 포함되어 있으므로 다른 앱의 데이터를 저장할 수 있다는 의미입니까? 어쩌면 모든 웹 앱 (추측)을위한 웹 서버에 공통 데이터베이스가 있습니까? :)

  2. 사용자 정보를 별도의 데이터베이스에 보관하려면이 두 데이터베이스간에 데이터를 연결하는 방법은 무엇입니까? 내 말은, 일부 테이블 (비즈니스 규칙)에서 UserId이 참조 될 것입니까? 내 비즈니스 데이터가 ID PK를 사용하고 있고 aspnetdb가 UniqueIdentifier를 사용하고 있습니다. 이것이 문제입니까?

  3. 사용자가 사이트에 등록 할 때 프로덕션에서 어떻게 역할을 할당합니까? Visual Studio에는 ASP.NET 구성 도구가 있지만 프로덕션 환경은 무엇입니까? 이 코드는 웹 프로젝트에서 코딩해야합니까?

  4. 응용 프로그램이 항상 인증을 요구하는 경우 사용자의 인증/인증을 처리하는 가장 좋은 방법은 무엇입니까?

답변

2

당신은 당신의 생산 앱에 defaut에의 ASP.NET 인증 구현을 사용하지 않아야합니다 : 그것은 상자 밖으로 작동하기 때문에 그것은 로컬 데이터베이스 (MDF 파일 파일)를 사용합니다. 그러나, 당신은이 솔루션에 의해 제한되지 않습니다

  • 당신은 더 나은 기존 데이터에 통합 할 수 있도록 실제 데이터베이스를 사용하는 ASP.NET 인증 (및 역할) 공급자를 구성 할 수 있습니다. 전체 프로세스를 더 잘 이해하려면 http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx 및 링크 된 페이지를 참조하십시오. ASP.NET은 DB에 필요한 테이블을 모두 생성 할 수 있습니다.

  • 사용자가 직접 기본 인증 메커니즘을 무시할 수 있습니다. 이 경우 웹 앱 프로젝트에서 Services/AuthenticationService.cs 만 편집하면됩니다. AuthenticationService 클래스는 AuthenticationBase를 상속받으며 사용자가 직접 구현 한 멤버쉽 메소드를 상당히 오버라이드 할 수 있습니다.