죄송합니다 상당히 형편없이 만든 수준낮은 예제입니다. 근거 없는 자신감으로 올려봅니다 -_-; ------------------------- 순 서 ------------------------- 1. WAV 파일 재생기 Window Control Library 제작
2. 예제 웹사이트에 Object 태그를 이용한 Dll 파일 Embed
3. CAS(Code Access Security) 보안 설정 프로그램 배포 및 설치
3. CAS(Code Access Security) 보안 설정 프로그램 배포 및 설치
현재 LocalHost로 예제를 만든 사이트에서 Wav 재생 메소드 호출시 예외가 Throw 된 보안 문제 부분에 대한
LocalHost의 사이트에 대한 참조 된 어셈블리 실행 권한 부분을 FullTrust로 변경하여 재생이 가능하게 만들어 본다!!-ml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />-ml:namespace prefix = o />-ml:namespace prefix = o />-ml:namespace prefix = o />-ml:namespace prefix = o />-ml:namespace prefix = o />
새 프로젝트 만들기 - 콘솔 응용프로그램
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Security;
using System.Security.Policy;
namespace SmartClientCAS
{
class Program
{
static void Main(string args)
{
// Machine (Local) 영역을 접근한다.
const string userPolicyLevel = "Machine";
PolicyLevel level = null;
System.Collections.IEnumerator ph = System.Security.SecurityManager.PolicyHierarchy();
//Machine 레벨을 가져온다.
while (ph.MoveNext())
{
level = (PolicyLevel)ph.Current;
if (level.Label == userPolicyLevel)
{
break;
}
}
//이미 추가가 되었는지 확인한다.
foreach (CodeGroup group in level.RootCodeGroup.Children)
{
if (group.Name == "WEBCAS")
{
return;
}
}
//권한 생성
NamedPermissionSet permissionSet = new NamedPermissionSet("FullTrust");
PolicyStatement policyStateMent = new PolicyStatement(permissionSet);
//URL 멤버쉽 생성
IMembershipCondition membership = new UrlMembershipCondition(@http://localhost:51392/*);
//코드그룹에 추가
UnionCodeGroup cg = new UnionCodeGroup(membership, policyStateMent);
//이름 생성
cg.Name = "WEBCAS";
cg.Description = "LocalHost 에서 실행하는 SmartClient 개체의 실행 권한입니다.";
//그룹 추가
level.RootCodeGroup.AddChild(cg);
//적용
System.Security.SecurityManager.SavePolicy();
System.Windows.Forms.MessageBox.Show("보안설정이 완료되었습니다.", "알림");
}
}
}
-----------------------------------------------------------------------------------------
위 코드는 유명하신 Hoons닷넷의 훈스님께서 작성하신 Lecture - SmartClient 강좌중 보안설정 프로그램 만들기 부분의 CAS(Code Access Security) 의 실행 권한 부분을 쉽게 설정 해줄 수 있도록 만들어주는 프로그램 부분을 참조 하여 코딩하였습니다..
http://www.hoons.kr/Lecture/LectureMain.aspx?BoardIdx=228&kind=29&view=0
위 부분을 빌드 하면 설정이 완료 되었단 메세지가 호출되면서 CAS 설정부분에는
LocalHost에서 실행하는 SmartClient 개체의 실행권한을 FullTrust로 설정하게 된다.
위부분중
IMembershipConditionmembership = new UrlMembershipCondition(@http://localhost:51392/*);
권한 부여 영역중 URL 영역수준의 권한 부여이다. 현재는 테스트 사이트 이므로 51392 포트를 명시하였다.
다시 웹페이지를 빌드해 본다.
보안문제가 발생하지 않고 정상적으로 wav 플레이어가 동작한다...
SmartClient를 실행하는 웹 사이트는 신뢰영역이외의 어셈블리를 참조할 경우 CAS 설정 프로그램을 배포(ex- ClickOnce) 해 설치해야 한다.
참조 웹 사이트 :
유경상님의 닷넷 블로그 - SmartClient 강좌 http://www.simpleisbest.net/archive/2006/01/02/360.aspx
Hoons 닷넷 SmartClient 프로그래밍 - http://www.hoons.kr/Lecture/LectureMain.aspx?idx=29
감사드립니다.
'C# > SmartClient' 카테고리의 다른 글
AxWMPLib 를 이용한 간단한 Wav,Mp3 재생기 입니다. (0) | 2014.07.08 |
---|---|
MediaPlayerClass 를 이용한 간단한 미디어 플레이어(wav,mp3 재생) (3) | 2014.07.08 |
클라이언트 .Net Framework 4이상 업데이트시 기존 SmartClient 운영방안 (0) | 2014.07.04 |
SmartClient를 이용한 간단한 Wav 파일 재생기 제작 - 2. 예제웹사이트에Object 태그를이용한 Dll파일참조 (0) | 2013.02.01 |
SmartClient를 이용한 간단한 Wav 파일 재생기 제작 - 1. WAV 파일 재생기 Window Control Library 제작 (1) | 2013.01.28 |