|
ASP용 ActiveX 라이브러리를 만들면서 레지스트리를 조작하는데요
(제가 지금 만들려고 하는 것은 클라이언트의 바탕화면에 임의의 URL 아이콘을 만드는 것입니다)
Active Server Pages error 'ASP 0115'
예기치 않은 오류
/IconInstaller.asp
외부 개체에 트랩 오류(EEDFADE)가 발생했습니다. 스크립트를 계속 실행할 수 없습니다.
와 같은 에러가 발생합니다
<%'asp code
'IconInstaller.Installer
Dim objIconInstaller
set objIconInstaller = server.CreateObject("IconInstaller.Installer")
objIconInstaller.CheckInstalled()
%>
그리고 메서드 구현부분입니다
STDMETHODIMP TInstallerImpl::CheckInstalled()
{
TRegistry *reg = new TRegistry;
try
{
reg->RootKey = HKEY_USERS;
reg->OpenKey("SOFTWARE", false);
reg->OpenKey("GMZICON", true);
reg->WriteString("Version", "1.0");
}
__finally
{
delete reg;
}
return S_OK;
}
MSDN 을 검색해서 나온 결과가 레지스트리를 수정할 수 있는 권한과 관련 되어 있는 것 같습니다
Permission and authentication issues with files and registry keys
Errors may occur if the authenticated user does not have sufficient permissions on other files such as custom components, system dynamic- link libraries (DLLs), and even registry keys.
ASP scripts are typically executed in the security context of the IUSR_<machine_name> account.
If you believe you are dealing with a permissions problem in the registry, you can use Regedt32.exe to examine permissions on the various registry keys. In particular, you may want to look at ODBC, Jet, ADO, and other keys that might be relevant to the problem. If you have a machine that is working properly, try comparing key permissions between the two machines.
The first step is to determine if you really are seeing a permissions problem. A good test is to temporarily add the anonymous logon account (IUSR_<machine_name>) to the administrators group using User Manager. This gives the IUSR_<machine_name> account administrative privileges on the machine. If this causes ASP to function properly, you are almost certainly dealing with a permissions issue.
NOTE: When you have finished debugging, be sure to remove the IUSR_<machine_name> account from the administrators group to minimize the security risk on your server.
그래서 생각해 본 것이
asp 파일은 서버의 asp.dll 을 거쳐서 html 파일로 변환 후 클라이언트에 뿌려지게 되는데
권한도 없는 클라이언트가 서버의 레지스트리를 건드려서 이 에러가 발생한게 아닌가 싶습니다
제가 의도한 것은 클라이언트의 레지스트리를 수정하는 것이었거든요
그렇다면... asp 용 라이브러리를 만들면 안 될 것 같구...
무엇으로 만들어야 할지 감이 잘 오지 않습니다;
혹시 ASP 는 서버단에서 실행되고 JavaScript는 클라이언트에서 실행되니까
위의 ASP 스크립팅을 JavaScript 나 VBScript 로 바꾸면
클라이언트의 레지스트리를 접근할 수 있는 것인가요?
그리고 Safety Scripting 에 대해서도 알려주시면 감사하겠습니다
스크립트로 제어를 컨트롤을 제어를 할려면 Safety Scripting 인터페이스를 추가해 주어야
한다고 하는데 빌더에서는 어떻게 하는지 모르겠습니다.
부탁드립니다
|