2012-12-20 2 views
1

나는 어려움을 겪고 있으며, 나는 약간의 통찰력을 제공 할 수있는 나보다 똑똑한 개발자가 있다고 믿는다.C#의 로컬 호스트로부터 요청 감지하기

웹 서비스가 있습니다. 이 웹 서비스는 C#에서 ASP.NET MVC로 작성되었습니다. 개발자가이 웹 서비스를 호출 할 수있게하고 싶습니다. 개발자가 코드를 작성할 때 일반적으로 웹 응용 프로그램은 localhost에서 실행된다는 것을 알고 있습니다. 그들이이 서비스를 호출 할 때, 나는 요청이 localhost에서 오는 것인지를 식별 할 수 있기를 원한다. 그러나 IP 주소를 보면 컴퓨터의 IP 주소입니다.

나를 이렇게 할 수있는 방법이 있습니까? 분명히 Request.IsLocal은 웹 서비스가 완전히 다른 컴퓨터에서 실행되기 때문에 작동하지 않습니다.

+0

그러면 로컬 (서비스의 관점에서)을 어떻게 정의 할 것입니까? 추측을 시도하는 대신 다른 API 엔드 포인트에서 개발 서비스를 설정하는 것이 좋습니다. –

+0

그래서 본질적으로 로컬로 액세스되는 웹 서버에서 * 귀하의 * 웹 서비스가 원격으로 호출되고 있는지 감지하고 싶습니까? 네가 그렇게 할 수 있다고 생각하지 않아. –

답변

0

앱의 요청과 함께 일부 추가 데이터를 전달하지 않아도 알 수있는 방법이 없습니다.

웹 서비스에 요청하는 데 사용 된 IP 주소 또는 호스트 이름 만 가져올 수 있으며 호스트 이름 (로컬 호스트)을 찾을 수 있기를 원합니다. 앱에 요청을하면 (그러면 웹 서비스 호출이 트리거됩니다).

0

그러면 로컬 서비스를 어떻게 정의 할 수 있습니까? 추측을 시도하는 대신 다른 API 엔드 포인트에서 개발 서비스를 설정하는 것이 좋습니다.

모든 프로덕션 수준의 API 호출은 dev.yourservice.com을 통해 들어오는 모든 개발 수준 요청이있는 api.yourservice.com과 같은 것으로 갈 수 있습니다.

그런 다음 두 개의 개별 서비스를 가질 수도 있고 서비스가 요청되는 URL을 읽고이를 바탕으로 차별화 할 수 있습니다.

1

웹 서비스를 호출 할 때 브라우저는 일반적으로 Referer 헤더에 페이지를 전달합니다. 따라서 해당 값이 "http : // localhost"로 시작하는지 확인할 수 있습니다. 사실 http 요청의 모든 내용은 위조 될 수 있습니다 (이를 포함하여). 따라서이 데이터를 기반으로 어떤 결정을 내릴지 조심하십시오.