2009-11-11 3 views
1

내 C# 응용 프로그램에서 우리 웹 사이트에서 "추가 기능"을 다운로드하여 사용자 컴퓨터에 로컬로 저장 한 다음 실행하려는 경우 (어셈블리 DLL 또는 EXE라고 가정 할 때 중요하지 않음)), 나는 그것을 내 Program Files 폴더의 하위 디렉토리에 저장할 수 없다고 가정하고, 추가 기능이 사용자별로 다르므로 실제로는 적절하지 않습니다. 이러한 정보는 어디에 저장해야하며 어떤 종류의 신뢰/보안 문제가 발생할 수 있습니까?사이트에서 다운로드 한 실행 코드는 어디에 저장하고 실행할 수 있습니까?

+0

그냥 있는지 확인하십시오 당신이 그렇지 않으면 당신은 예를 들어, 등 많은 위험에 사용자를 노출하는 디지털을 실행하기 전에 당신이 서명 다운로드 코드, 누군가 사용자를 귀하의 사이트에 해킹이나 공격 DNS 서버를 사용하여 소프트웨어가 잘못된 사이트에서 파일을 다운로드하게 만듭니다 (더 많은 위험이 있습니다). – Nir

+0

@Nir : 자신 만의 추가 기능을 작성하는 경우 충분히 쉽지만 타사 추가 기능을 허용하려면 해당 키를 모두 서명해야합니다. –

답변

1

.NET에서 제공되는 IsolatedStorage 클래스를 사용하면 사용자 특정 항목을 저장할 수 있습니다.

더 많은 정보 : Working with Isolated Storage in .NET

+0

누구나이 방법이 Brian 's보다 좋거나 나빴던 이유를 제공하고 싶습니까? –

+0

Scott,별로 다르지 않습니다. 저장소 위치가 Brian의 대답에 사용되는 위치와 약간 다를 것이라고 생각합니다. 일반적으로 사용자/앱 특정 데이터에 대해 읽은 .NET 책에 따라 권장됩니다. 배포 된 시스템에 따라 Brian의 접근 방식을 사용하지 않을 수있는 문제가 발생할 경우 CAS를 사용하여 IsolatedStorage를 사용하는 권한을 훨씬 더 효과적으로 변경할 수 있습니다. – Ian

+0

이 자료에 따르면 : http://stackoverflow.com/questions/882490/how-to-decide-where-to-store-per-user-state-registry-appdata-isolated-storage/882496#882496 격리 된 저장소는 어쨌든 ApplicationData 폴더, 그래서 이것이 더 나은 대답이라고 생각합니다. –

3

현재 사용자의 응용 프로그램 데이터 디렉토리는이를 저장하는 한 곳입니다.

string basePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
basePath = System.IO.Path.Combine(basePath, "MyProgram"); 
if (!Directory.Exists(basePath)) 
    Directory.CreateDirectory(basePath); 

설치 후 프로그램 파일 안에 무엇이든 쓰려고하면 Vista, Windows 2008 server, Windows 7 이상에서 문제가 발생합니다. 물론 응용 프로그램에 고도가 필요하지 않는 한. 또한 파일이 사용자별로 특정하다고 언급했습니다.

관련 문제