Я знаком с олицетворением учетной записи в .net с помощью:
dim myIdentity as WindowsIdentity = someIdentity
using ctx as WindowsImpersonationContext = myIdentity.Impersonate()
doStuff()
end using
Можно ли определить атрибут .net, чтобы я мог написать что-то вроде:
< runAsUser(someIdentity) > public sub doStuff()
а затем .net Framework всегда олицетворяет себя при запуске метода doStuff()
?
Update Хорошо, мне сказали, что это может быть невозможно, поскольку аргументы конструктора атрибута должны бытьконстанты, которые исключают передачу идентификатора пользователя.
Позвольте мне задать вопрос немного иначе: предположим, что существует функция getUserWindowsIdentity()
, которая возвращает идентификатор, связанный с вошедшим в систему пользователем.
Могу ли я затем использовать < runAsLoggedInUser) > public sub doStuff() >
, чтобы инфраструктура всегда олицетворяла идентификатор пользователя, возвращаемый getUserWindowsIdentity
при запуске метода doStuff()
?