2011-01-31 1 views
1

웹 페이지에 포함 된 Silverlight 4 응용 프로그램이 있습니다.Silverlight 클라이언트 응용 프로그램이 Apache 서버의 텍스트 파일에 액세스 할 수 있지만 브라우저 액세스를 허용하지 못하게하려면 어떻게해야합니까?

Uri url = new Uri(@"config\settings.xml", UriKind.Relative); 
WebClient client = new WebClient(); 
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); 
client.DownloadStringAsync(url); 

그러나 이상적으로, 나는 사용자가 방문하여 브라우저에서 파일에 액세스하려고하면 403 금지 오류를 반환 할 : 나는 실버 라이트 클라이언트가 같은 것을 수행하여 설정 파일을 다운로드 할 수 있도록하고 싶습니다 http://www.mywebsite.com/config/settings.xml

.htaccess를 사용하면 가능합니까?

답변

2

Silverlight 또는 웹 브라우저에서 파일에 액세스하는 것은 웹 서버에서도 마찬가지이므로 사용자가 액세스하지 못하도록 할 수있는 방법은 많지 않습니다. 할 수있는 최선의 방법은 파일을 가져 오는 데 걸리는 단계를 난독 화하는 것입니다. 당신이 할 수

한 가지 HTTP 시계/방화범/Wireshark를 켜고 실버 라이트 클라이언트가 실버 라이트는 웹 요청을 있다고 확인하는 특별한 HTTP 헤더를 전송하는지 확인하는 것입니다. 고유 한 것을 식별 할 수 있으면 해당 헤더가있는 요청 만 허용되도록 웹 서버를 구성 할 수 있습니다.

그런 헤더가 없으면 다른 종류의 인증을 사용하는 것입니다. 자격 증명은 Silverlight 클라이언트에 저장되므로 실제로 안전하지는 않지만 다시 파일을 가져 오는 방법을 모호하게 만들 수 있습니다.

파일을 웹에 액세스하는 대신 클라이언트로 컴파일하도록 선택할 수도 있습니다.

편집 : 그것은 실버 라이트처럼 보이지 않는

어떤 식별 헤더를 보냅니다. 코드를 통해 항상 "수동으로"요청에 헤더를 추가 할 수 있습니다.

0

Silverlight는 클라이언트 측에서 실행되므로 http 요청을 통해 데이터를 검색합니다. Silverlight에서 사용자 정의 http 에이전트 (참조 할 수없는)를 사용할 수있는 경우가 아니면 액세스를 제한 할 수 없습니다.

관련 문제