내가 사용하여 .NET에서 계정을 사칭 익숙 : 나는 같은 것을 쓸 수 있도록속성을 사용하여 .net을 다른 사용자로 가장 할 수 있습니까?
dim myIdentity as WindowsIdentity = someIdentity
using ctx as WindowsImpersonationContext = myIdentity.Impersonate()
doStuff()
end using
는 .NET의 속성을 정의하는 것이 가능 :이 다음
< runAsUser(someIdentity) > public sub doStuff()
을하고, .net 프레임 워크는 항상 doStuff()
메서드를 실행할 때 가장합니다.
업데이트 좋아, 나는 속성 생성자에 대한 인수가 사용자의 신원을 전달하는 것을 배제하는 상수 여야하기 때문에 이것이 불가능할 수도 있다고 들었습니다.
조금 다른 점을 물어 보겠습니다. 로그인 한 사용자와 관련된 ID를 반환하는 getUserWindowsIdentity()
함수가 있다고 가정합니다.
doStuff()
메서드를 실행하는 경우 프레임 워크가 항상 getUserWindowsIdentity
에 의해 반환 된 사용자 ID를 가장한다고 만들 때 < runAsLoggedInUser) > public sub doStuff() >
을 사용할 수 있습니까?
ref 인수를 전달하지 않고도 쉽게 얻을 수있는 경우 특성 클래스를 코드화하여 ID를 조회 할 수 있습니까? –
네,하지만 여전히 속성을 처리하고 실제로 그 코드로 뭔가를 한 다른 코드가 있어야합니다. 일반적으로 속성은 다른 코드에서 반영된 마커로 사용됩니다. 메서드를 호출 한 코드는 특성을로드하고 처리해야하며 실제로 가장을 수행해야합니다. 서로 다른 미리 정의 된 자격 증명을 사용하여 실행해야하는 동일한 위치에서 여러 메서드를 호출하는 경우 잠재적 인 이점을 확인할 수 있습니다. – Toby