2010-12-09 6 views
3

저는 스프레드 시트 서버 쪽을 만들고 Silverlight 프런트 엔드를 통해 클라이언트에 다운로드하고 있습니다. 사용자가 버튼을 클릭하고 SaveFileDialog가 표시되면서 시작됩니다. 일단 사용자가 파일 이름을 입력하면 Silverlight는 웹 서비스에 대한 비동기 호출을 시작하고 완료되면 사용자가 저장을 요청한 위치에 기록 된 바이트 배열을 반환합니다. 이 모든 것이 잘 작동합니다.Silverlight 4에서 다운로드 한 후 파일을 자동으로 엽니 다.

어떻게하면이 파일을 클라이언트 PC에서 자동으로 열 수 있습니까?

답변

2

당신하지 마십시오 또는 COM Interop를

C#으로이 일의 '표준'방법 'Process.Start를 (경로)'입니다. 시나리오와 관련이없는 강력한 보안상의 이유로 Silverlight에서는 허용되지 않습니다.

이론적으로 Silverlight 4 응용 프로그램이 'Out of Browser'로 실행 중이거나 Silveright 5 (Beta) 응용 프로그램에 새로운 고급 권한이있는 경우 COM Interop을 사용하여 문서를 열 수 있습니다. 여기서 문제는 SaveFileDialog에서 파일 경로를 다시 가져 오지 않아서 COM Interop Open 명령에 전달할 경로를 알 수 없기 때문입니다. 당신은

참조 http://www.itwriting.com/blog/2159-silverlight-4-with-com-can-do-anything-on-windows.html http://justinangel.net/CuttingEdgeSilverlight4ComFeatures

+0

흠 I를 (예를 들어,이 파일 이름과 생성 시간 스탬프에 기반 검색) '그것'완전 수 '할 수있을 것 만나다. 나는 savefiledialog를 가지고 있기 때문에 나는 경로를 가질 것이라고 생각했지만, 디버그 모드에서는 경로가 없다는 것을 알 수있다. 브라우저를 모두 사용하지 않아도됩니다. 나는 보안 관점에서 볼 때 클라이언트에게 짜증나는 방법이 무엇인지 간단하게 추측합니다. (이론 상으로는) 단순하고 사용자 친화적 인 것을 제외하고 말입니다. savefiledialog에서 기본 파일 이름을 설정할 수 있다는 것과 저런 부족 ... – JumpingJezza

관련 문제