Сбой разрешения EventLog в ASP.Net на Win7 - PullRequest
3 голосов
/ 01 декабря 2009

У меня есть приложение ASP.Net .net 3.5 SP1, работающее в Win7. Во время входа в систему что-то в элементе управления входом ASP.Net вызывает запись в журнал безопасности (это звучит приемлемо для меня) в журнале событий. Проблема в том, что, похоже, приложение не имеет разрешения на это. Там ошибка:

Описание : приложение попыталось выполнить операцию, не разрешенную политикой безопасности. Чтобы предоставить этому приложению необходимые разрешения, обратитесь к системному администратору или измените уровень доверия приложения в файле конфигурации.

Исключение Подробности: System.Security.SecurityException: сбой запроса разрешения типа «System.Diagnostics.EventLogPermission, System, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089».

Трассировка стека не показывает ни одной строки кода из моего приложения, все это в фреймворке. Последние 5 строк: System.Security.CodeAccessSecurityEngine.Check (Требование объекта, StackCrawlMark & ​​stackMark, логическое значение isPermSet) +0 System.Security.CodeAccessPermission.Demand () +61 System.Diagnostics.EventLog..ctor (String logName, String machineName, String source) +125 System.Diagnostics.EventLog..ctor () +24 System.Diagnostics.EventLog.WriteEntry (источник String, сообщение String, тип EventLogEntryType, идентификатор события Int32, категория Int16, Byte [] rawData) + 52

Это же приложение отлично работает на XP SP2. Я охотился вокруг и не могу найти, как дать разрешения. Я попытался запустить пул приложений в качестве LocalSystem и ApplicationPoolIdentity.

Какой самый простой способ запустить это? Это мой локальный компьютер разработчика, и мне все равно, если я открою дыры в безопасности, если мне не нужно изменять код (то есть мне нужно решение, которое должно быть изменением INETMGR или web.config или некоторыми локальными разрешениями и т. Д. ).

Спасибо!

Ответы [ 2 ]

2 голосов
/ 01 декабря 2009

Эта ссылка появляется для обсуждения вашей проблемы. Я не уверен в различиях между CAS по умолчанию (безопасность доступа к коду) в XP и win 7, однако запись сборки в журнал событий (и все вызывающие сборки) должна иметь EventLogPermission.

Вы можете добавить атрибут AllowPartiallyTrustedCallers или подписать сборку ключом строгого имени .

0 голосов
/ 29 января 2016

Если вы пишете в журнал приложений по умолчанию, вам необходимо предоставить разрешение LocalSystem, прежде чем использовать его в пуле приложений. Откройте RegistryEdit и перейдите на

 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application

Щелкните правой кнопкой мыши по Applicatuion и выберите разрешения

enter image description here

Если пользователь ( LOCALSYSTEM ) отсутствует в списке, то Добавить и Разрешить полный контроль

...