Я пытаюсь реализовать основную аутентификацию сервиса Active Directory в WCF, используя руководство Microsoft:
https://learn.microsoft.com/en-us/sql/c ... ql-serbre-> preavertication?view=sql-serbre-> preavertication?view=sql-serbre-> preavertiacation?view=sql-net/sql/azure-actain Class = "Lang-None PrettyPrint-Override">protected void Application_Start(object sender, EventArgs e)
{
using (SqlConnection sqlConnection = new SqlConnection())
{
try
{
sqlConnection.ConnectionString = "Data Source=;Initial Catalog=;User ID=;Password=;Application Name=;MultipleActiveResultSets=True;Authentication=Active Directory Service Principal;Encrypt=True;TrustServerCertificate=True";
sqlConnection.Open();
SqlCommand comandoSql = new SqlCommand
{
CommandText = @"select 1",
Connection = sqlConnection
};
comandoSql.ExecuteScalar();
}
catch (Exception ex)
{
sqlConnection.Dispose();
}
finally
{
sqlConnection.Close();
SqlConnection.ClearPool(sqlConnection);
}
}
}
< /code>
Этот же код с той же строкой подключения успешно работает в приложении .NET, но в моем веб -проекте WCF он возвращает эту ошибку, когда Connection.Open () < /code> называется: < /p>
clientecretcredentialcredential Aintendication. Производна: Retry не удалась после 4 Tries. Настройки повторения могут быть скорректированы в ClientOptions.retry или путем настройки пользовательской политики повторной попытки в ClientOptions.retrypolicy.
Как мое веб -приложение, так и .NET приложение используют .NET Framework 4.7. Azure.identity 1.10.3.> StackTrace " at
> Microsoft.Data.SqlClient.SqlInternalConnectionTds.GetFedAuthToken(SqlFedAuthInfo
> fedAuthInfo)\r\n at
> Microsoft.Data.SqlClient.SqlInternalConnectionTds.OnFedAuthInfo(SqlFedAuthInfo
> fedAuthInfo)\r\n at
> Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,
> SqlCommand cmdHandler, SqlDataReader dataStream,
> BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
> stateObj, Boolean& dataReady)\r\n at
> Microsoft.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
> SqlCommand cmdHandler, SqlDataReader dataStream,
> BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
> stateObj)\r\n at
> Microsoft.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean
> enlistOK)\r\n at
> Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo
> serverInfo, String newPassword, SecureString newSecurePassword,
> Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean
> withFailover, Boolean isFirstTransparentAttempt, Boolean
> disableTnir)\r\n at
> Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo
> serverInfo, String newPassword, SecureString newSecurePassword,
> Boolean redirectedUserInstance, SqlConnectionString
> connectionOptions, SqlCredential credential, TimeoutTimer timeout)\r\n
> at
> Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer
> timeout, SqlConnectionString connectionOptions, SqlCredential
> credential, String newPassword, SecureString newSecurePassword,
> Boolean redirectedUserInstance)\r\n at
> Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity
> identity, SqlConnectionString connectionOptions, SqlCredential
> credential, Object providerInfo, String newPassword, SecureString
> newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString
> userConnectionOptions, SessionData reconnectSessionData,
> ServerCertificateValidationCallback serverCallback,
> ClientCertificateRetrievalCallback clientCallback, DbConnectionPool
> pool, String accessToken, SqlClientOriginalNetworkAddressInfo
> originalNetworkAddressInfo, Boolean applyTransientFaultHandling)\r\n
> at
> Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions
> options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo,
> DbConnectionPool pool, DbConnection owningConnection,
> DbConnectionOptions userOptions)\r\n at
> Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool
> pool, DbConnection owningObject, DbConnectionOptions options,
> DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)\r\n
> at
> Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection
> owningObject, DbConnectionOptions userOptions, DbConnectionInternal
> oldConnection)\r\n a t
> Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection
> owningObject, DbConnectionOptions userOptions, DbConnectionInternal
> oldConnection)\r\n at
> Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection
> owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean
> allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions
> userOptions, DbConnectionInternal& connection)\r\n at
> Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection
> owningObject, TaskCompletionSource`1 retry, DbConnectionOptions
> userOptions, DbConnectionInternal& connection)\r\n at
> Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection
> owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions
> userOptions, DbConnectionInternal oldConnection, DbConnectionInternal&
> connection)\r\n at
> Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection
> outerConnection, DbConnectionFactory connectionFactory,
> TaskCompletionSource`1 retry, DbConnectionOptions userOptions)\r\n
> at
> Microsoft.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1
> retry)\r\n at
> Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1
> retry, SqlConnectionOverrides overrides)\r\n at
> Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides
> overrides)\r\n at WebService.Global.Application_Start(Object
> sender, EventArgs e) in WebService\\Global.asax.cs:line 29" string
Подробнее здесь: https://stackoverflow.com/questions/794 ... incipal-au
Подключить проект WCF с Azure SQL с использованием основной сервисной службы Active Directory ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Подключить проект WCF с Azure SQL с использованием основной сервисной службы Active Directory
Anonymous » » в форуме C# - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PHP Secure LDAP/LDAPS в Azure Active Directory через доменные службы Microsoft Entra
Anonymous » » в форуме Php - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-