Вам не нужно выдавать себя за служебную учетную запись.Учетная запись службы - это учетная запись, которая нуждается в доступе к базе данных, и я полагаю, что она уже есть.Вы уже пытались запустить свое приложение без олицетворения учетной записи службы при доступе к базе данных?Это должно работать.
Чтобы выполнить простой тест, проверьте идентичность, возвращаемую WindowsIdentity.GetCurrent()
(например, внутри Page_Load
).Это должно вернуть удостоверение пула приложений, и это удостоверение, которое будет использоваться для доступа к базе данных.
Конечно, это работает, только если у вас не настроено олицетворение клиента в вашей сетиФайл .config.Но так как это не общая практика, за исключением некоторых угловых случаев, я полагаю, вы не используете это.Олицетворение клиента не требуется для определения того, кто является текущим пользователем, его следует использовать только тогда, когда вы хотите получить доступ к сторонним системам (базам данных, файловым ресурсам, очередям и т. Д.) С использованием идентификатора текущего пользователя (которыйне очень масштабируемый подход).