본문 바로가기
C# /SmartClient

SmartClient를 이용한 간단한 Wav 파일 재생기 제작 - 2. 예제웹사이트에Object 태그를이용한 Dll파일참조

by Hwoarang757 2013. 2. 1.

죄송합니다 상당히 형편없이 만든 수준낮은 예제입니다. 근거 없는 자신감으로 올려봅니다 -_-; 

  

------------------------- 순     서 -------------------------

1. WAV 파일 재생기 Window Control Library 제작

2. 예제 웹사이트에 Object 태그를 이용한 Dll 파일 Embed

3. CAS(Code Access Security) 보안 설정 프로그램 배포 및 설치

 

2. 예제 웹사이트에 Object 태그를 이용한 Dll 파일 참조

2-(1) ASP.NET 웹 사이트 생성

 

 

해당 웹사이트에 1번(Wav 파일 재생기 Window Control Library 제작에서 빌드한 DLL) 항목에서 빌드한 Dll 파일을 추가 한다.

솔루션 탐색기 - 기존 항목 추가 - Dll 파일 추가

 

 

------------------------------------------------------------------------------------------------------------

ASPX 페이지의 소스에 Dll 파일을 Object 태그를 이용해 Embed 한다.

<%@ PageLanguage="C#"AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<formid="form1"runat="server">

<div>

<object id="WavPlayer" classid="SmartClient_AudioPlayer.dll#SmartClient_AudioPlayer.SoundPlayer"></object>

</div>

</form>

</body>

</html>

classid의 부분에 Dll 파일경로를 명시해 주며 # 뒤에는 라이브러리의 네임스페이스.클래스명 을 명시해준다.

------------------------------------------------------------------------------------------------------------

ASPX.CS의 소스 내용이다.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

      

        string filePath = "C:\\test.wav";

        string PlayScript = "document.all.WavPlayer.WavPlay('" + filePath + "');";

 

        this.ClientScript.RegisterStartupScript(this.GetType(), "WavPlay", PlayScript, true);

}

}

Page_Load 이벤트에서 Public으로 선언한 WavPlay 메소드를 호출하여 Wav 파일을 웹 브라우저에서 재생시켜본다!!..

-----------------------------------------------------------------------------------------웹 페이지를 빌드하여 실행 결과를 확인해보도록 한다.

빌드를 해보니 OBJECT 태그를 이용해 참조한 Wav 의 재생기는 정상적으로 로드가 되었으나 Page_Load 이벤트에 재생 명령을 명시한것이

동작하지 않는다!! 그리고 보안에 관한 에러 메세지가 Throw 된다. -_-;;

인터넷에서 해결방법을 찾아보니 CAS (Code Access Security)에 관한 부분을 설정해줘야 해당 wav재생기가 동작할 수 있었다.

즉 Dll(어셈블리)을 클라이언트에서 자동으로 다운로드받아 참조하여도 어셈블리에 대한 신뢰성이 없고 특정 참조나 메소드를 실행하는 과정에서

클라이언트에서는 보안문제로 실행을 막기 때문에 액세스 권한을 조정해줘야 한다는 뜻이었다.

(

제가 실력이 부족해 설명이 너무 부족합니다. 죄송합니다. CAS 부분에 대한 개념과 설명은 유명하신

유경상님의 닷넷 블로그에서 개념과 문제 해결방안을 찾으실수 있을거 같습니다.

http://www.simpleisbest.net/archive/2006/04/28/612.aspx

)

-----------------------------------------------------------------------------------------