私は特定のサービスアカウントとして実行する必要があるいくつかのメソッドを持っているので、私は通常のことを実行します。偽装を実行する.NETカスタム属性?
public DoSomeWorkAsServiceAccount() {
...
// assume I am given tokenHandle
WindowsIdentity newId = new WindowsIdentity(tokenHandle);
WindowsImpersonationContext impersonatedUser = newId.Impersonate();
...
// do the work here
...
impersonatedUser.Undo();
}
を私はあらゆる方法で、このコードを書き込まないようしたいと思いますので、私が作成を考えていましたカスタム属性:
だからここ[Impersonate(tokenHandle)]
public DoSomeWorkAsServiceAccount() {
// do the work
}
私の質問です:
- が、これは可能ですか?
- コードの重複を避けるために何かを表示できますか?
ありがとうございます。
答えをありがとう...私は私たちがAOPをしたかった。そして、あなたのアイコンは最高です。 –
あなたは大歓迎です!私は例に入れなかったが、あなたの 'op'呼び出しをfinallyブロックでラップして、WindowsIdentityとWindowsImpersonationContextオブジェクトを破棄してください。 – akmad