2013-11-15 5 views
5

자, 이제는 C# winforms 응용 프로그램을 만들고 있습니다.프로그램에만 폴더/파일 액세스를 제한하는 방법은 무엇입니까?

이진 데이터 파일에서 읽고 쓰고 싶습니다. 그러나 그 파일을 어딘가에있는 폴더에 넣고 싶습니다. 그리고 누구도 파일을 삭제하거나 편집 할 수 없도록하고 싶습니다. 파일에 액세스 할 수있는 파일 만 사용하는 프로그램이 필요합니다.

이것이 가능합니까? MSDN의 파일 보안 구조를 조사한 결과 파일을 사용자에게 제한하면 권한을 무시하고 편집 할 수 있다고 불평하는 사람들이있었습니다.

또한 실제로 이것이 본질적으로 파일을 편집하는 프로세스를 원하고 그 프로세스가 시간이 지남에 따라 열리고 닫히는 경우 프로세스 ID가 달라질 수 있다는 점을 생각하면 어렵다고 생각했습니다.

의견이 있으십니까?

+0

'파일을 사용하는 프로그램에서만 액세스 할 수 있기를 바랍니다.'심각한 질문 : 왜 그렇습니까? 머신 관리자로 활동하지 않는 한, 사용자는 자신의 파일 시스템에 대해하는 일을 실제로 제어 할 수 없습니다. 앱 데이터의 무결성이 걱정된다면 데이터를 사용할 때 무결성을 확인하기 위해 할 수있는 다른 방법이 있습니다. – admdrew

+1

글쎄, 내 생각은 왜 누군가가 파일을보고, "importantData.bin"이라고 말하고, 열어서 그걸로 엉망이되기를 바랄 수 있겠습니까? 한 가지가 엉망이된다면 당신은 말한 것처럼 데이터 무결성을 잃어 버렸습니다. –

+0

그렇습니다. 그렇다면 '좋은'데이터 만 받아들이는 논리를 직접 만들거나 솔루션을 찾기 위해 온라인으로 검색 할 수 있습니다. 이것은 어떻게 든 사용자 관점에서 바라지 않는 파일 시스템을 잠그는 것보다 나은 방법입니다. – admdrew

답변

0

설치하기 전에 대상 파일 시스템을 제어 할 수 있다면 파일 사용 권한을 설정하고 거기에서 이동할 수 있습니다. 폴더에 액세스하는 사용자는 최소한 읽기 권한이 있어야합니다.

0

보안 그룹에서 응용 프로그램을 실행하고 해당 보안 그룹이있는 폴더와 파일에 대한 권한을 지정하십시오. 다른 사용자의 액세스 권한을 취소하고 읽기 전용으로 만들기

1

독점적으로 열면 프로그램이 실행되는 동안 파일 액세스를 차단할 수 있습니다.

그러나 프로그램이 실행되고 있지 않을 때 파일은 더 이상 보호되지 않습니다. 그래서 누군가는 파일에 접근하기 위해 프로그램을 죽일 필요가 있습니다.

프로그램이 실행되지 않는 동안 파일을 보호하려면 사용자 계정을 설정하고 프로그램에만 알려진 암호를 지정해야합니다. 그런 다음 사용자 만 파일에 액세스 할 수 있도록 파일의 권한을 설정하십시오.

그러나 관리자는 파일의 소유권을 인계 할 수 있으므로 권한 보호조차도 쓸모가 없습니다.

마지막으로 누군가 하드 디스크를 PC에서 꺼내 원시 데이터를 읽을 수도 있습니다.

파일 또는 파일 콘텐츠를 보호할지 여부를 생각할 수도 있습니다. 파일 내용이 중요한 경우 암호화에 대해 생각하십시오.

정말 필요한 옵션에 따라 선택하십시오.

+0

답장을 보내 주셔서 감사합니다. 데이터를 읽는 사람에 대해서는별로 민감하지 않습니다. 나는 누군가가 그 파일을 찾아 우연히 또는 의도적으로 삭제하기를 원하지 않는다. 나는 사용자 및 계정 권한 설정에 대해 살펴볼 것입니다. 이것은 현재로서는 유일한 가능성 인 것처럼 보이며 아무도 관리자가되어이를 사용하지 않기를 희망합니다. 컴퓨터에 인터넷이 연결되어 있다면 문제가되지 않을 것입니다. 서버를 설치하거나 뭔가를 설정하는 것입니다. 그러나 그들은 ... –

+0

NTFS 파일 시스템이 있으면 프로그램의 실행 파일 또는 DLL에서 대체 데이터 스트림을 시도하십시오. 그들은 거의 보이지 않습니다. 그들을 보시려면 특별한 도구가 필요합니다. 이러한 도구를 사용하는 사람은 소유권을받는 방법도 알고 있습니다. –

0

이 옵션이 모든 요구 사항을 충족시키지는 못하지만 IsolatedStorage (System.IO.IsolatedStorage 네임 스페이스)을 사용해보십시오.

How to write and read file in IsolatedStorage

System.IO.IsolatedStorage 네임 스페이스

절연 점포의 생성 및 사용을 허용 종류가 포함되어 있습니다. 이러한 저장소를 사용하면 을 읽고 신뢰할 수없는 코드가 액세스 할 수없는 데이터를 작성하고 파일 시스템의 다른 위치에 저장할 수있는 중요한 정보를 에 노출시키지 않도록 할 수 있습니다. 데이터는 현재 사용자와 코드가있는 어셈블리로 분리 된 구획에 저장됩니다. 또한 도메인별로 데이터를 격리 할 수 ​​있습니다.로밍 프로필은 격리 된 저장소와 함께 사용되는 일 수 있으므로 격리 된 저장소는 사용자 프로필로 이동합니다. IsolatedStorageScope 열거 형 은 서로 다른 유형의 격리를 나타냅니다. 자세한 내용은 대한 때 잘 격리 된 저장소

-1

를 사용하는, 저도 같은 문제를 가지고 나는이 주제에 대한 몇 가지 연구를하고 그이는 AccessPoint 데이터베이스 또는 암호와 다른 마이크로 소프트 데이터베이스에 귀하의 정보를 보호 발견 암호가있는 특정 응용 프로그램 하나만이 이러한 정보에 대한 읽기/쓰기 권한을 갖습니다.

0

Windows 10 버전 1709는 Controlled Folder Access을 도입했습니다. 이렇게하면 특정 폴더를 수정할 수있는 응용 프로그램을 허용 목록에 추가 할 수 있습니다. 읽기 액세스는 제한 할 수 없습니다.

관련 문제