2011-02-02 2 views
2

Stub 역할을하는 ClickOnce 응용 프로그램이 있습니다.이 응용 프로그램은 단순히 다른 설치 프로그램을 다운로드하는 작은 응용 프로그램입니다. 작동 방식은 페이로드를 다운로드하여 실행하고 닫는 것입니다. 이것은 C# .NET으로 작성되었습니다. 내 문제는 페이로드 동적입니다. 응용 프로그램이 다운로드 한 페이로드에 서명되지 않은 경우 사용자에게 경고를 표시하도록 ClickOnce 응용 프로그램을 원합니다. 이 동작은 UAC가 활성화되어있을 때 자동으로 표시되지만 내 스텁은 다양한 OS에서 실행되며 UAC가 활성화되었는지 여부는 알 수 없습니다. 실행 파일이 실행될 때 Windows가 수행한다는 경고를 간단히 호출 할 수 있다면 좋을 것입니다 - 가능합니까? 그렇지 않다면 무엇을 권하고 싶습니까?서명되지 않은 실행 파일의 사용자에게 경고

답변

2

웹 사이트에서 다운로드 한 프로그램을 실행할 때 경고 메시지가 표시된다고 가정합니다.

Zone.Identifier 대체 데이터 스트림을 파일에 추가해야합니다.
당신은 this library를 사용하는 것을 수행 할 수는 Win32에서

var fs = new NTFS.FileStreams(filename) 
fs.Add("Zone.Identifier") 
using (var writer = new StreamWriter(fs["Zone.Identifier"].Open()) { 
    writer.WriteLine("[ZoneTransfer]") 
    writer.WriteLine("ZoneID=4") 
} 
1

는 인증 코드 서명을 확인하는 데 사용되는 함수는 WinVerifyTrust입니다. 아무 닷넷 BCL 상당 (내가 아는 한)은 없지만, pinvoke.net C#을에서 그것을 사용하는 방법에 꽤 좋은 기사가 있습니다

http://www.pinvoke.net/default.aspx/wintrust.winverifytrust

관련 문제