我有一些方法需要作为某个服务帐户运行,所以我做正常的事情:
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
}
所以这是我的问题:
- 这可能吗?
- 你能告诉我一些可以避免代码重复的东西吗?
提前致谢。