0

ドメインなしのコンピューター (または他のドメイン) でホストされている asp.net c# Web サイトで、リモート Active Directory アカウントを偽装しようとしています。私はこれを機能させました:

IntPtr token = IntPtr.Zero;
LogonUser( "username", "ad.some.other.domain.com", "password", LOGON_TYPE_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, ref token))
{
   WindowsImpersonationContext wic; 
   wic = WindowsIdentity.Impersonate(token);
   //run code under the impersonated user.

   //System.Environment.UserName returns windows user (not impersonated one)
   //WindowsIdentity.GetCurrent() returns windows user (not impersonated one)
 }

コードは実行されますが、偽装されたユーザーの「ユーザー名」を取得できません。これは、ログオン タイプとして LOGON_TYPE_NEW_CREDENTIALS を使用しているためです。これは、技術的には偽装されませんが、トークンを使用して偽装されたアカウントでネットワーク接続を実行します。これは問題なく機能しますが、理想的には私のサイトは偽装されたユーザーの下で実行されるため、ユーザー名やその他の機能を取得できます。基本的に、偽装ユーザーとしてネットワーク接続を実行するだけでなく、偽装ユーザーとしてサイトと対話したいと考えています。ログオンの種類として LOGON32_LOGON_INTERACTIVE を試しましたが、ドメインのないコンピューターで実行されているサイトでドメイン アカウントを認証できません。

完全に偽装し (ユーザー名を取得するなど)、ドメインのないコンピューターから Active Directory を使用して認証できるようにするためにできることはありますか?

4

1 に答える 1

0

ASP.NetまたはMVCを実行する必要がある場合、使用しているWebサイトの種類がわかりません

<identity impersonate="true" />

http://msdn.microsoft.com/en-CA/library/aa292118%28v=vs.71%29.aspx

于 2013-04-25T18:50:17.043 に答える