몇 가지 인스턴스에서 가장 인기를 끌 수 있습니까?
-
02-07-2019 - |
문제
나는에 사천이 사용되는 앱이 있습니다. 그러나 사용자가 관리자로 로그인하면 몇 가지 작업에서 서버 자체에 편지를 작성해야합니다. 이제 이러한 사용자가 실제 서버에 대한 권한이 없다면 (일부는 그렇지 않음) 글을 쓰지 않습니다.
내가하고 싶은 것은 몇 가지 명령에 대한 사칭을 해제하는 것입니다.
이런 일을 할 수있는 방법이 있습니까?
using(HostingEnvironment.Impersonate.Off())
//I know this isn't a command, but you get the idea?
고맙습니다.
해결책
응용 프로그램 풀에 필요한 적절한 권한이 있는지 확인하십시오.
그런 다음 애플리케이션 풀 ID로 되돌려면 다음을 실행하십시오.
private WindowsImpersonationContext context = null;
public void RevertToAppPool()
{
try
{
if (!WindowsIdentity.GetCurrent().IsSystem)
{
context = WindowsIdentity.Impersonate(System.IntPtr.Zero);
}
}
catch { }
}
public void UndoImpersonation()
{
try
{
if (context != null)
{
context.Undo();
}
}
catch { }
}
다른 팁
이것이 선호되는 접근법인지 확실하지 않지만이 작업을하고 싶을 때 나는 Windowsidentity 그리고 가장합니다 방법. 이를 통해 후속 코드는 다른 Windows 사용자를 가장합니다. a WindowsImpersonationContext 그것은 있습니다 실행 취소 사칭 컨텍스트를 다시 되돌아가는 방법.
페이지의 인증을 끄고 나머지 코드 중에 인증 된 사용자를 수동으로 가장합니다.
http://support.microsoft.com/kb/306158
이것은 그 마지막 부분에 대한 언급이 있지만 기본적으로 사용자를 가장합니다.
이것은 페이지로의 통화 시작 부분에서 가장해야한다는 것을 의미합니다. 필요할 때 끄고 끄고 완료되면 다시 켜지 만 실행 가능한 솔루션이어야합니다.
방금 폴더에 "인증 된 사용자"에게 권한을 쓰는 것이 었습니다.
제휴하지 않습니다 StackOverflow