2010-08-17 5 views
3

간단한 토큰으로 특정 응용 프로그램에 대한 액세스를 제한하기 위해 Data Services에 간단한 인증을 추가하고 싶습니다.OData - 데이터 서비스 단순 인증

도메인 인증 또는 양식 인증이 필요하지 않습니다.

는 여기 인증에 대해 많이 읽어

http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/06/03/10482.aspx

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/15/10119.aspx

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/10/10100.aspx

불행히도 모든 일의 loooot을 요구한다. 무엇보다도 사용자 지정 IHttpModule을 만드는 중입니다. 더 간단한 해결책이 있어야합니다.

클라이언트 (WPF)에서 개체 컨텍스트를 만들 때 자격 증명을 추가 할 수 있다는 것을 알고 있습니다.

Uri uri = new Uri("http://localhost/myapp/odata.svc"); 

MyEntities ent= new MyEntities (uri); 
ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56"); 

하지만 사용자 지정 IHttpModule을 구현하지 않고 어디에서 읽을 수 있습니까? 그것은 "의 약자 사용자 이름, 암호를 가져옵니다 위해 나는 사용자 정보에 익숙하지 않다

protected override void OnStartProcessingRequest(ProcessRequestArgs args) 
{ 
string cred = args.OperationContext.AbsoluteRequestUri.UserInfo; 
} 

하지만 설명 :

은 내가 예를 들어, 데이터 서비스의 구현 클래스에서 뭔가를 사용할 수있는 생각했다. ..)

그래서 나는 두 가지 질문이있다 : 나는 ent.Credentials = 새로운 NetworkCredential을 입력하여 포함 된 자격 증명을 읽을 수

  1. 를 ("토큰", "zx5as9vxc 5sa9h0vb6523cv56 ");

  2. 어디에서 클라이언트 응용 프로그램에서 UserInfo를 설정하고 OnStartProcessingRequest 메서드에서 사용할 수 있습니까?

감사합니다, 다니엘 Skowroński

합니다 (하나로, OData 프로토콜의 .NET 구현입니다) 인증 및 WCF 데이터 서비스에 대한 게시물의 일련있다

답변

3

: http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/

당신은 할 수 있어야이 코드 샘플을 포함하여 더 많은 정보를 찾으십시오.

+1

감사합니다. 인증 기능을 만들기 위해 http://blogs.msdn.com/b/astoriateam/archive/2010/07/21/odata-and-authentication-part-6-custom-basic-authentication.aspx를 사용했습니다. . 나는 커스텀 커스텀 HttpModule을 생성하지 않고 그것을했다. 단순히 SSL + 클라이언트 evnt ctx.SendingRequest + = 새로운 EventHandler (OnSendingRequest); + OData 서비스 이벤트의 서버 측 보호 된 무효 OnStartProcessingRequest (ProcessRequestArgs args) –