ORA-01017: неверное имя пользователя / пароль; вход запрещен анонимно и Windows авторизация IIS - PullRequest
1 голос
/ 28 апреля 2020

У меня проблема при подключении к Oracle БД в следующем сценарии:

Строка подключения:

<add name="PassContext" connectionString="metadata=res://*/Entities.PassModel.csdl|res://*/Entities.PassModel.ssdl|res://*/Entities.PassModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string=&quot;DATA SOURCE=DB-SCAN:1521/PR;USER ID=/;Pooling=true;CONNECTION LIFETIME=20;INCR POOL SIZE=1;MAX POOL SIZE=1;&quot;" providerName="System.Data.EntityClient" />

В среде разработки все работает нормально.

Когда я публикую sh в IIS, вот что произошло:

Мы использовали Anonymous и Windows Auth

<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
  <allow users="*" /> 
</authorization>

У меня есть уровень множественного доступа на том же сайте:

Pages / * Windows Auth

Public / * anonymouse auth

в папке publi c, которую я использовал другой dbcontext со строкой соединения с именем пользователя и паролем:

<add name="PublicPassContext" connectionString="metadata=res://*/Entities.PassModel.csdl|res://*/Entities.PassModel.ssdl|res://*/Entities.PassModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string=&quot;DATA SOURCE=DB-SCAN:1521/PR;USER ID=userName;Password=password;Pooling=true;CONNECTION LIFETIME=20;INCR POOL SIZE=1;MAX POOL SIZE=1;&quot;" providerName="System.Data.EntityClient" />

, когда я публикую sh в IIS, если первый запрос идет к: Public / * path, а затем я go к любой странице в: Pages / * path
Я получил ошибку:

ORA-01017: неверное имя пользователя / пароль; вход в систему запрещен

, если первый запрос идет на Pages / * все работает нормально.

и несколько раз за ночь, когда все работает нормально, тогда утром пользователи получают ту же ошибку

Я пробовал как управляемый, так и классический c конвейер, и подражал в коде

 var callerWindowsIdentity = Request.LogonUserIdentity as WindowsIdentity;
  using (callerWindowsIdentity.Impersonate())
            { 
//context code
}

, но они не работают

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...