2012-09-15 6 views
1

현재 모바일 장치 용 웹 사이트 및 앱을 보유한 프로젝트를 진행 중입니다. 사용자가 내 사이트에 로그인하여 특정 지역을 볼 수있는 방법이 필요합니다. 나는 WCF RESTful 서비스를 만들어야 할 필요가 있음을 알고 있지만, 나는 사용자 생성을 계속하는 방법에 박혀있다. 원래 .NET 내장 멤버쉽을 사용하려고했지만 많은 사용자가있는 경우 가장 많이 읽습니다. 그런 다음 .NET 제공 업체의 모든 기능을 제공하는 새로운 제공 업체를 구축 할 생각 이었지만 모든 것을 제어 할 수있었습니다. 마지막 아이디어는 전체 멤버십 시스템을 구축하는 것이지만 .NET 멤버십 시스템의 기능을 잃어 버리게 될까봐 걱정했습니다. 나는 기본적으로 누군가를 찾고있는 올바른 방향으로 설명하고 이유를 설명합니다.웹 사이트 및 모바일 앱용 회원 시스템

지금 당장이 문제를 해결하는 가장 좋은 방법은 전체 회원 시스템을 구축하는 것입니다. 내 웹 사이트가 호출하고 RESTful 서비스가 호출하는 백엔드의 WCF를 통해 내 데이터 액세스를 모두 갖게 될 것이라고 생각합니다. 현재 WCF를 통해 사용자 이름과 암호를 인증 할 수있는 방법을 모르고 있습니다.

입력 해 주셔서 감사합니다.

+0

많은 사람들이 죽는 것은 무엇을 의미합니까? 하루에 1000? 100000? –

답변

3

몇 가지 프로젝트에서이 작업을 수행합니다. 여기에 우리가 어떻게 수행했는지 요약되어 있습니다. 단 하나의 방법 일 뿐이며, 자체 멤버십 공급자를 작성하는 데 성공했습니다.

우리는 3 개 주요 프로젝트가 :

  1. Data.project - 클래스 라이브러리
  2. WebApp.project - MVC 응용 프로그램
  3. API.project - 우리는 내장 사용 WCF 서비스

을 닷넷 멤버쉽 제공자는 상자에 들어있는 그대로 존재합니다. 이를 통해 MVC 및 API 프로젝트에서 기본 등록, 비밀번호 변경, 역할 관리, 쉬운 컨트롤러 기반 역할 권한 및 액세스 제어 기능을 사용할 수 있습니다.

기본 멤버 자격 공급자는 자체 테이블을 사용하여 사용자 데이터를 저장합니다.

그런 다음 사용자의 .NET membershipId에 대한 외래 키를 사용하여 사용자 및 프로필 테이블과 데이터 구조를 만듭니다. 따라서 우리는 사용자 프로필로 수행해야하는 모든 응용 프로그램 관련 작업을 수행하면서 동시에 기본 공급자에 대한 액세스를 제공 할 수있는 유연성을 제공합니다.

인증은 MVC 프로젝트에 정직, 이제 사용자 이름과 암호로 인증하기 위해 .NET 회원의 방법을 사용할 수 있습니다 : 당신이하고 FormsAuthentication의 고급 스러움이없는 WCF 프로젝트

if(Membership.ValidateUser(username,password)){ 
    FormsAuthentication.SetAuthCookie(username,password); 
} 

하지만, 여전히 기본 멤버 자격 공급자를 사용하여 사용자 자격 증명의 유효성을 검사 할 수 있습니다.

당신과 당신의 프로젝트에 따라 다르지만 기본적으로 필요한 인증을 처리하는 방법은 일반적으로 인증 후에 WCF 서비스가 반환하는 인증 토큰을 사용합니다. 이 토큰은 일반적으로 요청 헤더에 유효성이 확인되었음을 증명하기 위해 각 WCF 요청에 포함됩니다.

우리는 서버에 자격 증명을 제출할 때 다음 성공하면 우리는 인증 토큰을 다시 전달 64 인 코드 사용자 이름과 암호를 기반으로 WCF를 들어

: 구축이 등록시

string decoded = System.Text.Encoding.UTF8.GetString(System.Convert.FromBase64String(Authmodel)); 
//convert your string into your authentication model here then 
if(Membership.ValidateUser(model.user,model.pass)) 
{ 
    //return new authentication token 
} 

우리는 또한 추가 로직을 포함하는 우리의 이 시점에서 독점적 인 사용자 및 프로필 테이블은 데이터 프로젝트에서 처리되므로 WCF와 MVC가 모두 액세스 할 수 있습니다.

또한 데이터 프로젝트는 사용자 테이블과 .NET 멤버십 공급자 테이블 간의 연결을 처리하므로 두 응용 프로그램 모두에서 정보에 액세스 할 수 있습니다.

나는 이것이 모두 모호하다는 것을 알고 있지만 어쩌면 통합 된 방식으로 인증을 처리하기위한 하나의 옵션을 생각하는 데 도움이 될 수 있습니다. 특정 부분에 관해 궁금한 점이 있으면 알려주십시오.이 정보가 도움이되기를 바랍니다.