ASP.NET의 각 폴더로 사용자를 어떻게 연결하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/125473

문제

Usera가 파일을 업로드하면 그의 파일은 userb 일 때 Foldera, Folderb 등에 업로드됩니다. ASP.NET의 역할/프로필. 폴더는 기존입니다. 누구나?

도움이 되었습니까?

해결책

당신은 아마 그것을 직접 코딩하고 싶을 것입니다. 사용자 파일을 관리하기 위해 ASP.NET에 내재적 인 것은 없습니다. 그러나 그렇게하려는 코드는 비교적 쉬워야합니다. 사용자 이름이 고유하고 변경되지 않는다고 가정하면 사용자 이름을 경로 (Path.comBine 사용)와 결합하여 해당 위치에 업로드 할 수 있습니다. 나는 또한 다른 사람이 접근 할 수 없도록 그 위치를 잠그겠습니다.

다른 팁

과거에 수행 한 방식은 기본 업로드 폴더 (업로드)를 사용하는 것입니다 (업로드). 해당 폴더에서 DB에서 사용자의 ID를 사용하여 폴더를 만듭니다. 따라서 사용자 ID가 145 인 사용자의 경우 구조가 .. 업로드 145입니다.

내 코드가하는 첫 번째 일은 폴더가 존재하는지 확인하는 것입니다. 그렇지 않은 경우 Directory.create (또는 구문이 무엇이든)를 호출하여 업로드하기 전에 폴더를 작성합니다.

도움이 될 수있는 추가 정보 : 이름이 동일한 이름으로 2 개의 파일을 업로드하면 이름 충돌을 피하는 안내서를 사용하여 파일의 이름을 바꿉니다. 단점은 일반적으로 원래 파일 이름과 물리적 (Guid) 파일 이름이있는 테이블을 유지해야한다는 것입니다.

폴더가 존재하는지 확인하고 사용자가 존재하지 않으면 사용자를 위해 만들 수 있지만 이에 대한 보안 영향이 있습니다. 데이터베이스에 데이터를 저장하고 사용자에게 연결하려고 할 수도 있습니다. 이는 사용자가 업로드하는 내용에 따라 다릅니다.

이것을 할 수있는 몇 가지 방법이 있습니다.

양식 인증 사용

Forms Authentication을 사용하는 경우 사용자의 사용자 이름 또는 ID가 사용자가 파일을 업로드 할 수있는 서버의 경로의 기초 역할을 할 수있는 컨벤션을 설정할 수 있습니다. 사용자는 해당 폴더에 직접 액세스 할 수 없습니다. 사용자는 웹 응용 프로그램을 통해 서버에서 파일을 다운로드 할 수 있어야합니다.

Windows 인증 사용

Windows (예 : Activedivedirectory) 인증을 사용하는 경우 폴더의 물리적 위치와 웹 응용 프로그램을 통해 사용자 액세스를 제공 할 수 있습니다.

추신 - 여기서 당신을 만나서 반갑습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top