사용자가 MVC3에서 오는 웹 페이지를 가져 오는 가장 좋은 방법을 찾으려고합니다.MVC3에서 오는 요청은 어디입니까
나는 다운로드 파일 기능을 만들고 있는데, 사용자가 내 웹 사이트에서 파일에 링크되어 있지 않으면, 내가 선택한 페이지로 리디렉션하고 싶습니다.
기본적으로 사람들은 내 웹 사이트를 먼저 통과하지 않고도 내 파일에 직접 링크하지 못하도록하고 싶습니다.
어떻게하면 가장 신뢰할 수있는 방법으로이 작업을 수행 할 수 있습니까?
사용자가 MVC3에서 오는 웹 페이지를 가져 오는 가장 좋은 방법을 찾으려고합니다.MVC3에서 오는 요청은 어디입니까
나는 다운로드 파일 기능을 만들고 있는데, 사용자가 내 웹 사이트에서 파일에 링크되어 있지 않으면, 내가 선택한 페이지로 리디렉션하고 싶습니다.
기본적으로 사람들은 내 웹 사이트를 먼저 통과하지 않고도 내 파일에 직접 링크하지 못하도록하고 싶습니다.
어떻게하면 가장 신뢰할 수있는 방법으로이 작업을 수행 할 수 있습니까?
슈퍼 간단한 방법 (즉, 대부분의 작업을 할를 사용하는 것입니다 ... 너무 ASP.NET의 모든 기능을 사용할 수 있습니다 컨트롤러의 Request.UrlReferrer
을 살펴 보는 것이 좋습니다. 여기에는 방문자가 방문한 URL이 포함되어야합니다.
MVC3은 여전히 ASP.NET을 기반으로합니다. 그래서 당신은
또 다른 방법은 IIS-확장 =>https://www.iis.net/community/default.aspx?tabid=34&g=6&i=1288 (Microsoft에서 LeechGuard)
이것이 지금 제가 어떻게 해결했는지입니다. 파일에 대한 정보를 표시 할 페이지에 파일 요청이있는 경우 표시됩니다. 파일을 다운로드하기 위해 사용자는 동일한 페이지를 가리키는 링크를 클릭합니다.
코드가 사용자가 파일 소유 URL에서 파일을 요청하고 있음을 감지하면 파일이 사용자에게 제공됩니다.
private bool RequestIsCommingFromSamePage()
{
if (Request.UrlReferrer == null)
return false;
string requestURL = Request.UrlReferrer.ToString();
string pageURL = Request.ServerVariables["HTTP_HOST"] + Request.RawUrl;
requestURL = requestURL.Replace("http://", "").Replace("https://", "");
if (requestURL == pageURL || pageURL == null || requestURL == null)
return true;
return false;
}
사용자가 로그인 한 후에 만 파일에 액세스하게 하시겠습니까? – VJAI
아니요, 사용자는 절대로 로그인하지 않습니다. 나는 그들이 내 웹 사이트의 링크를 통해 파일에 접근하고 있는지 확인하고자합니다. 파일에 대한 링크가 내 파일에 연결되어있는 외부 웹 사이트에서 오는 경우 다른 페이지로 리디렉션하고 싶습니다. – JensB