特定のサービスアカウントとして実行する必要があるメソッドがいくつかあるので、通常のことを行います。
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
}
だからここに私の質問があります:
- これは可能ですか?
- コードの重複を避けるための何かを見せてもらえますか?
前もって感謝します。