Вы можете использовать System.Security.Principal.WindowsIdentity.GetCurrent (), чтобы создать веб-методы, которые возвращают имя текущего пользователя (наиболее вероятно, специального пользователя ASP_NET), а затем увеличить привилегии пользователя (или изменитьнастройки безопасности ключа, который вы хотите отредактировать из regedit, чтобы пользователь, под которым работает ваш процесс, мог прочитать часть реестра
С другой стороны, если я прав, и вы хотитеотредактируйте HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ PageSetup, и ваша цель не состоит в том, чтобы изменить информацию в этом ключе для пользователя ASP_NET, после чего потребуется аутентификация на вашем веб-сервисе с использованием учетной записи, доступной на сервере, для этого, вам необходимо настроить веб-сервис для использования проверки подлинности Windows в Web.config:
<system.web>
...
<authentication mode="Windows"/>
<identity impersonate="true"/>
...
</system.web>
Затем вы получите токен Windows для аутентифицированного пользователя:
IIdentity WinId= HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)WinId;
и, наконец, вы используете токен Windows аутентифицированного пользователя для временноговыдать себя за оригинального пользователя и удалить маркер олицетворения из текущего потока, когда вы закончите олицетворение.
// Temporarily impersonate the original user.
WindowsImpersonationContext wic = wi.Impersonate();
try
{
// Access resources while impersonating.
}
finally
{
// Revert impersonation.
wic.Undo();
}
Таким образом, когда вы запросите WindowsIdentity.GetCurrent (), вы получите имя пользователя учетной записи Windowsдля аутентификации (это называется временно выдавать себя за аутентифицированного пользователя ).И у вас будет доступ к HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ PageSetup пользователя, которого вы использовали для аутентификации
Более подробная информация об аутентификации и имитации под Windows здесь: http://msdn.microsoft.com/en-us/library/ff647405.aspx