/
dev-npgsql
/
npgsql
Обзор
Документация
Войти
/
dev-npgsql
/
npgsql
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
v9.0.1
src/Npgsql/Internal/IntegratedSecurityHandler.cs
32 строки
1 KB
Nino Floris
Opt in integrated security (#5204)
27 сен 2023, 03:23
Не верифицирован
27 сен 2023, 03:23
3d9a9dd
Код
Авторство
О чём код?
using System; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Npgsql.Properties; namespace Npgsql.Internal; class IntegratedSecurityHandler { public virtual bool IsSupported => false; public virtual ValueTask<string?> GetUsername(bool async, bool includeRealm, ILogger connectionLogger, CancellationToken cancellationToken) { connectionLogger.LogDebug(string.Format(NpgsqlStrings.IntegratedSecurityDisabled, nameof(NpgsqlSlimDataSourceBuilder.EnableIntegratedSecurity))); return new(); } public virtual ValueTask NegotiateAuthentication(bool async, NpgsqlConnector connector) => throw new NotSupportedException(string.Format(NpgsqlStrings.IntegratedSecurityDisabled, nameof(NpgsqlSlimDataSourceBuilder.EnableIntegratedSecurity))); } sealed class RealIntegratedSecurityHandler : IntegratedSecurityHandler { public override bool IsSupported => true; public override ValueTask<string?> GetUsername(bool async, bool includeRealm, ILogger connectionLogger, CancellationToken cancellationToken) => KerberosUsernameProvider.GetUsername(async, includeRealm, connectionLogger, cancellationToken); public override ValueTask NegotiateAuthentication(bool async, NpgsqlConnector connector) => new(connector.AuthenticateGSS(async)); }