2012-08-14 2 views
2

리소스를 비공개로 설정할 수있는 방법이 있습니까?ASP.NET MVC3 : 개인 리소스

본인에게는 비디오 콘텐츠 사이트가 있습니다. 그들은 업로드. 파일은 웹 서버에 저장됩니다.

파일이 사이트에 다시 포함됩니다. 내가 구글 크롬에서 "소스 코드"를 볼 경우

는 지금, 나는 참조 :

<object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" height="400" width="600" > 
<param name="URL" value="/Videos/Tree%20Felling.wmv" /> 
<param name="autoStart" value="False" /> 
<param name="uiMode" value="full" /> 
<param name="stretchToFit" value="True" /> 
<param name="volume" value="75" /> 
<embed src="/Videos/Tree%20Felling.wmv" width="600" height="400" type="application/x-mplayer2" autoStart="False" uiMode="full" stretchToFit="True" volume="75" /> 
</object> 

당신이 볼 수 있듯이, 위치가 지금 알려진다. 사이트 주소에이 주소를 추가하면 비디오에 직접 액세스 할 수 있습니다. 파일을 저장하거나 로그인이 이루어지지 않은 다른 위치에서 파일에 액세스 할 수 있다는 의미입니다.

은 뭐죠 그들이 URL을 사용하는 등

자신의 웹 사이트에 그것을 삽입 아니면 내가 잘못 생각하고 중지?

어떻게 이런 일을 방지합니까?

답변

1

Following this, I found on another question.

이 솔루션은 사용자가 액세스를 거부하고자하는 폴더에있는 Web.config를 추가하는 것입니다.

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <authorization> 
      <allow users="*"/> 
      <deny users="?" />    
     </authorization> 
    </system.web> 
</configuration> 

이것은 미디어에 액세스 할 수 있도록 웹 사이트에 로그인해야한다는 것을 의미합니다. 따라서 거머리 동영상/콘텐츠는 없습니다.

1

이것은 까다로운 문제입니다. 내 솔루션을 사용자 지정 HttpHandler (msdn article) 만들고 일부 사용자 지정 확장, * .zzz, 할당 할 수 있으므로 embed 요소에 대한 src 생성 할 때 다음과 같습니다. /Videos/uploaded.zzz?id = {someId}. 그런 다음 HttpHandler에서 요청한 비디오의 ID를 확인하고 응답으로 반환합니다. /Videos/uploaded.zzz URL에 직접 연결하는 사람이 걱정된다면 핸들러 코드 (ProcessRequest 메서드)를 사용하여 미디어 파일을 반환하기 전에 사용자가 권한이 있는지 (요청 중에 로그인했는지) 확인할 수 있습니다. 원하는만큼 멋진 결과를 얻을 수 있으며 파일 요청 수를 기준으로 제한을 추가 할 수 있습니다.

이 코드를 작성하지 않았지만 매우 간단합니다.

+0

URL을 직접 연결하기 위해 자신의 퍼가기를 사용하지 못하도록 막지 않습니다. 그들은 당신이 언급 한 보안을 통과 할 수 있습니다. 필요한 것은 내 웹 사이트에서만 동영상을 볼 수있게하는 것입니다. 그래서 아무도 직접 링크를 걸 수 없습니다. – Doomsknight