ASP.NET 프로젝트에서 이전 VB6 dll (소스 코드 없음)을 호출하려고합니다. DLL은 Windows 인증을 사용하는 서버에 연결되므로 NETWORKSERVICE가 아닌 특정 사용자로 함수를 호출해야합니다.ASP.NET 프로젝트에서 특정 사용자로 COM DLL 함수를 호출하십시오.
원격 사용자를 가장하고 있기 때문에 응용 프로그램 사용자가 아니라 NETWORKSERVICE가 아닌 현재 함수를 호출하는 사용자가되기를 원하기 때문에 이것은로드 시간이 아닌 호출 시간에 결정되는 것이 바람직합니다.
그래서 USER로 실행중인 브라우저에 USER라는 응용 프로그램에 연결하여 USER로 dll을 호출하지만 dll은 USER가 아닌 NETWORKSERVICE로 원격 서버에 연결하려고합니다.
이 dll을 USER로 원격 서버에 연결할 수 있습니까? 아니면, 아무것도 아닌 경우 응용 프로그램 사용자로 연결 하시겠습니까?
편집 :
가장을 원격 사용자의 WindowsIdentity
에 Impersonate()
를 호출하여 코드에서 이루어집니다. 내가 일하는 회사는 사용자 정의 SecurityPrincipal
과 SecurityIdentity
을 가지므로 WindowsIdentity
(조금 더 깊이는 User.Identity
)이 되려면 어떻게해야할까요?하지만이 방법을 성공적으로 사용하기 전에이 방법을 사용하여 확인했습니다. System.Security.Principal.WindowsIdentity.GetCurrent().Name
가장 중에 올바른 사용자입니다.
@rkosegi 전체 게시물을 읽고, 나는 가장하고 있습니다. –
응용 프로그램과 DLL간에 모든 것이 처리 중이지만 DLL이 여전히 다른 자격 증명을 사용하고 있다면 DLL 코드에 문제가 있음을 의미합니다. –
정확히 ** 당신이 가장하고있는 방법에 대한 코드를 게시하는 것이 도움이 될 수 있습니다. ASP.NET의 응용 프로그램 풀은 기본적으로 네트워크 서비스에서 실행되며 사용자 컨텍스트를 제대로 전환하지 않으면이 사용자가 네트워크 리소스에 계속 액세스합니다. – Sumo