2009-06-06 1 views
2

私はASP.NETアプリケーションを構築しています。アプリケーションはフォーム認証を使用します。私は役割を使用していません。しかし、私のアカウントには、私が管理者であることを示すフラグが付いています。ASP.NET - 偽装に関する難問

管理者として、Server.Execute経由でアプリケーション内の別のページを呼び出したいと思います。私はこのページを呼び出すと、それをアプリケーション内の別のユーザーとして呼びたいと思います。

これは可能ですか?もしそうなら、どうすればいいですか?私はServer.Executeを実行する方法を知っています。それは私を困惑させている別のユーザーと呼ぶのです。私はこれが偽装でできると仮定します。しかし、私はそれを行う方法がわかりません。

ありがとうございました!

答えて

6

ページを呼び出す前に、あなたはちょうどあなたが偽装するプリンシパル(我々はASP.Net偽装の話ではなく、Windowsのだ)

var identity = new GenericIdentity("username"); 
//Roles get populated for username  
var principal = new RolePrincipal(identity); 
//Current thread now impersonated as "username" 
Thread.CurrentThread.CurrentPrincipal = principal; 
Server.Execute("whatever.aspx"); 
+0

おかげで現在のプリンシパル(admin)を交換してください!これは非常に役に立ちます。 – Villager