Ошибка входа в систему после изменения Web.Config - PullRequest
0 голосов
/ 27 сентября 2018

После того, как я изменил свой web.config, я получаю ошибку, показанную ниже.

До изменения:

<connectionStrings>
    <add name="CS1"
         connectionString="Server=S1; Database=DB1; User ID=Admin; Password=AdminPW; Persist Security Info=True; Max Pool Size=200; Connection Timeout=60" />
</connectionStrings>

После изменения:

<connectionStrings>
    <add name="CS1" 
         connectionString="Data Source=S1; Initial Catalog=DB1; Integrated Security=True;" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

Ошибка:

Ошибка входа пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Data.SqlClient.SqlException: сбой входа для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'.

Трассировка стека:

[SqlException (0x80131904): Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.]
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) +1431
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +1085
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +70
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +964
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +109
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1529
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +156
   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +258
   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +312
   System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +202
   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +413
   System.Data.SqlClient.SqlConnection.Open() +128
   MROWebPartCollection.BLL.Common.DataProvider.ConnectionDB() +263
   MROWebPartCollection.BLL.Provider.MROQ_TBL_USER_PROFILEProvider..ctor() +245
   MROWebPartCollection.ProductWP.CoaCoc.CoaCocUserControl..ctor() +125
   ASP._controltemplates_mrowebpartcollection_productwp_coacoc_coacocusercontrol_ascx..ctor() +16
   __ASP.FastObjectFactory_app_web_coacocusercontrol_ascx_16352c62_o2rjt3li.Create_ASP__controltemplates_mrowebpartcollection_productwp_coacoc_coacocusercontrol_ascx() +31
   System.Web.UI.TemplateControl.LoadControl(IWebObjectFactory objectFactory, VirtualPath virtualPath, Type t, Object[] parameters) +282
   System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) +120
   MROWebPartCollection.ProductWP.CoaCoc.CoaCoc.CreateChildControls() +96
   System.Web.UI.Control.EnsureChildControls() +130
   System.Web.UI.Control.PreRenderRecursiveInternal() +66
   System.Web.UI.Control.PreRenderRecursiveInternal() +276
   System.Web.UI.Control.PreRenderRecursiveInternal() +276
   System.Web.UI.Control.PreRenderRecursiveInternal() +276
   System.Web.UI.Control.PreRenderRecursiveInternal() +276
   System.Web.UI.Control.PreRenderRecursiveInternal() +276
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6881

1 Ответ

0 голосов
/ 27 сентября 2018

Если вы используете встроенную защиту, то учетной записи активного каталога пула приложений должен быть предоставлен доступ к базе данных SQL Server.Вот несколько советов:

  1. Используемая учетная запись должна быть активной учетной записью каталога, действительной как на веб-сервере, так и на сервере базы данных.Локальная учетная запись будет работать, если вы находитесь на том же компьютере.
  2. Чтобы назначить удостоверение вашему веб-сайту, найдите пул приложений в IIS (настройки сайта в пуле приложений), а затем найдите удостоверение пула приложений.свойство в настройках пула приложений.Установите идентификатор пула приложений для выбранной учетной записи активного каталога.
  3. В SQL Server создайте пользователя SQL, который сопоставляется с вашей учетной записью активного каталога
  4. После создания пользователя вы можете предоставитьэтот пользователь имеет доступ к вашей базе данных

Конечно, каждый из этих шагов имеет ряд деталей, на которые следует обратить внимание.

Я также должен отметить, что во всех приведенных выше инструкциях предполагается, чтоВы хотите настроить базу данных, используя стандартный логин.Если, с другой стороны, вы хотите пройти аутентификацию на SQL Server, используя учетные данные Active Directory пользователя, просматривающего ваш сайт, вы захотите использовать олицетворение IIS вместо шагов, описанных выше. Эта статья объясняет основы подражания.

...