2011-03-23 1 views
1

RIA 인증 도메인 서비스와 RIA 엔터티 도메인 서비스를 모두 사용하는 Silverlight 응용 프로그램이 있습니다. Sivlerlight 응용 프로그램이 다운로드되는 동일한 ASP.Net 웹 사이트에서 RIA 서비스가 사용되는 표준 배포 시나리오에서 응용 프로그램이 제대로 작동합니다.다른 웹 사이트의 서비스를 사용하는 Silverlight RIA 응용 프로그램

배포를 좀 더 유연하게하기 위해 RIA 서비스를 호스팅하고 Silverlight 응용 프로그램을 호스팅하는 데 별도의 웹 응용 프로그램을 사용하고 싶습니다. 필자는 RIA 서비스를 별도의 사이트에서 사용하도록 관리하고 Silverlight 응용 프로그램을 업데이트하여 해당 사이트를 가리 키도록했습니다. 문제는 인증이 깨지는 것입니다. 피들러 (Fiddler)에서 RIA 요청을 살펴 봤는데 인증 쿠키가 겉으로보기에는 정확합니다.

Silverlight 응용 프로그램을 다운로드 한 웹 사이트와 다른 웹 사이트에서 호스팅되는 RIA 서비스로 Silverlight RIA 응용 프로그램을 배포 한 사람이 있습니까?

+0

별도의 웹 프로젝트에 해당하지 않는지 확실하지 않습니다. http://www.blogs.victorero.com/2010/04/20/ASilverlightApplicationWithAWCFRIAServicesClassLibrary.aspx –

+0

작성 중 적용되지 않습니다. RIA 서비스 클래스를 Silverlight 클라이언트에서 사용할 수 있습니다. – sipwiz

답변

0

내가 자기를 위해 작업 중이던 요청의 차이를보고 피들러를 사용하는 유일한 차이점은 RIA 서비스와 외부 하나 유일한 차이점은 HTTP 리퍼러 헤더이었다 개최했다. RIA RequiresAuthentication 특성이 리퍼러 헤더를 고려하여 이상하게 보일 수도 있으므로 아마도 완전히 다른 것입니다.

내 도메인 및 인증 서비스를 단일 서비스로 통합하여 다른 웹 응용 프로그램에서 호스팅 할 수있는 방법을 찾았습니다.이 서비스는 매우 편리합니다. 이 접근법은 AuthenticationDomainService를 주 도메인 서비스에 넣는 것이 었습니다. 클라이언트에서 동일한 사용 패턴을 허용하지 않지만 인증은 엔티티로드 작업이지만 인증을 위해 ASP.Net 멤버십 공급자를 쉽게 사용할 수 있습니다.

[EnableClientAccess] 
public class MyDomainService : LinqToEntitiesDomainService<MyEntities>, IAuthentication<User> 
{ 
    public class AuthenticationDomainService : AuthenticationBase<User> 
    { } 

    private AuthenticationDomainService m_authService = new AuthenticationDomainService(); 

    public User Login(string username, string password, bool isPersistent, string customData) 
    { 
     return m_authService.Login(username, password, isPersistent, customData); 
    } 

    .... 
+0

도메인 간 게시로 인한 초기 문제가 있습니까? 여전히 다른 도메인에 호스팅 된 서비스가 다음과 같은 사항을 확인할 수 있습니다. http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx –

0

편집 :이 방법으로 도움이되지 않습니다. WebDomainClient 클래스를 사용하여 HTTP를 통해 도메인 서비스와 통신 할 URI가 필요한 내장

  1. 기본 생성자 :

    http://msdn.microsoft.com/en-us/library/ee707359%28v=vs.91%29.aspx

    도메인 컨텍스트 클래스는 세 개의 생성자가 포함되어 있습니다.

  2. 클라이언트가 대체 URI를 지정할 수 있도록하는 생성자.

  3. 클라이언트가 사용자 정의 전송 클라이언트 계층 (일반적으로 단위 테스트 또는 사용자 지정 전송 계층으로의 리디렉션에 사용되는) 사용자 지정 DomainClient 구현을 제공 할 수 있도록하는 생성자입니다. 결국

+0

네, 사용자 정의 URI를 지정할 수있는 생성자를 사용하고 있습니다. 내 문제는 실제로 서비스가 끝났다고 믿습니다. 어떤 이유로 엔터티 도메인 서비스와 인증 도메인 서비스가 원래 웹 응용 프로그램에서 이동했을 때 함께 작동하지 않습니다. – sipwiz

+0

새 웹 응용 프로그램에서 System.ServiceModel.DomainServices.Hosting, System.ServiceModel.DomainServices.Server 및 System.ServiceModel.DomainServices.EntityFramework를 로컬 복사로 설정 했습니까? –

+0

아니요.하지만 원래 웹 앱도 아닙니다. 이전에 두 웹 응용 프로그램에서 해당 어셈블리에 대한 bin 디렉토리를 확인했지만 둘 다 가지고 있지 않습니다.두 앱이 동일한 시스템에 있고 어셈블리가 GAC에 있으므로 모두 필요하지 않습니다. RIA 서비스는 Siverlight 클라이언트가 그들과 대화 할 수 있다는 점에서 새로운 웹 응용 프로그램에서 작동합니다. 인증과 함께 뭔가 이상한 점이 있습니다. 그리고 누군가 똑같은 일을 처리했는지 궁금합니다. – sipwiz