Запуск процесса в C# с доступом “Бросков имени пользователя и пароля Отклонен” в исключении

Это исправление больше не работает после CTP5.

Вы должны сделать Database.SetInitializer<YourContext>(null);

8
задан Mark Byers 26 August 2010 в 04:39
поделиться

6 ответов

Можно использовать ProcessStartInfo, который позволяет Вам указывать учетные данные. Прием - то, что пароль является безопасной строкой, таким образом, необходимо передать его как массив байтов.

Код мог бы посмотреть что-то как:

Dim startInfo As New ProcessStartInfo(programName)
        With startInfo
            .Domain = "test.local"
            .WorkingDirectory = My.Application.Info.DirectoryPath
            .UserName = "testuser"
            Dim pwd As New Security.SecureString
            For Each c As Char In "password"
                pwd.AppendChar(c)
            Next
            .Password = pwd

            'If you provide a value for the Password property, the UseShellExecute property must be false, or an InvalidOperationException will be thrown when the Process..::.Start(ProcessStartInfo) method is called. 
            .UseShellExecute = False

            .WindowStyle = ProcessWindowStyle.Hidden
        End With
2
ответ дан 6 December 2019 в 00:09
поделиться

Не уверенный, если это - это, но у меня была связанная проблема, и ответ был то, что учетная запись не имела разрешения явиться олицетворением на машине. Это может быть изменено путем добавления, что учетная запись к политике "Исполняет роль клиента после аутентификации" использование локального менеджера политики на машине.

1
ответ дан 6 December 2019 в 00:09
поделиться

Я пошел другим путем и поместил целое приложение в его собственный пул приложений, работающий как пользователь, которого мы первоначально исполняли роль. Теперь, когда asp.net порождает новый процесс, он мечет икру под контекстом пользователя вместо aspnet_wp. Не точное решение проблемы, которую я отправил, но это работало на нашу ситуацию.

1
ответ дан 6 December 2019 в 00:09
поделиться

Я столкнулся с той же проблемой, которую Вы сделали на проекте. Должен быть способ породить процесс из Вашего веб-приложения с данными учетными данными, но на практике, это - клудж в лучшем случае Что я волновал, окончательное выполнение просто имело информацию о нажатии приложения к MSMQ и имело сервис окон, который вытолкал объекты Очереди обслуживаемый запросы.

Даже когда Вы, которых appliation исполняет роль, это все еще, хотите работать под theaspnet учетной записью пользователя.

0
ответ дан 6 December 2019 в 00:09
поделиться

Я хотел упомянуть, что я попробовал код на этом сайте включая обновленный код, упомянутый в комментариях. Этот код выполняет процесс как явленные олицетворением идентификационные данные (который является действительно всем, в чем я нуждаюсь), но перенаправление сбоев стандартной погрешности - так эта ссылка могло быть полезно для не обеспокоенных контактом с stderr.

0
ответ дан 6 December 2019 в 00:09
поделиться

Проверьте уровень Безопасности доступа к коду, в то время как Процесс требует Full Trust. Ваше веб-приложение может работать в частичной доверительной установке.

От страницы Process MSDN:

Полномочия

* LinkDemand
для полного доверия для непосредственной вызывающей стороны. Этот класс не может использоваться частично доверяемым кодом.

* InheritanceDemand
для полного доверия для наследников. Этот класс не может быть наследован частично доверяемым кодом.

0
ответ дан 6 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: