Maui App Auth через MSAL, чтобы получить токен для соединения SQL для устройства AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Maui App Auth через MSAL, чтобы получить токен для соединения SQL для устройства Android

Сообщение Anonymous »

Привет, я запускаю очень похожий код в приложении выше в приложении Maui, когда запускаю метод для вызова этого кода, мне предложено в устройстве Android выбрать свою учетную запись в корпорации, тогда мне спрашивают, хочу ли я продолжать Используйте мое названное имя приложения на том же устройстве Android, которое оно запускается, когда дело доходит до < /p>
using Microsoft.Data.SqlClient;
using Microsoft.Identity.Client;
using System;
using System.Linq;
using System.Threading.Tasks;

public static class AzureSqlService
{
private static readonly string _clientId = "your-client-id";
private static readonly string _tenantId = "your-tenant-id";
private static readonly string _sqlConnectionString = "Server=tcp:your-server.database.windows.net,1433;Database=your-database;";
private static readonly string[] _scopes = new[] { "https://database.windows.net/.default" };

public static async Task InitializeAsync()
{
// Initialize your database here if needed
}

public static async Task GetSqlConnectionAsync()
{
var app = PublicClientApplicationBuilder.Create(_clientId)
.WithAuthority(new Uri($"https://login.microsoftonline.com/{_tenantId}"))
.WithRedirectUri($"msal{_clientId}://auth")
.WithLogging((level, message, containsPii) =>
{
System.Diagnostics.Debug.WriteLine($"MSAL: {level} {message} ");
}, LogLevel.Verbose, enablePiiLogging: false, enableDefaultPlatformLogging: true)
.Build();

var accounts = await app.GetAccountsAsync();
AuthenticationResult result;

try
{
result = await app.AcquireTokenSilent(_scopes, accounts.FirstOrDefault())
.ExecuteAsync();
}
catch (MsalUiRequiredException)
{
var currentActivity = PlatformService.GetCurrentActivity();
try
{
result = await app.AcquireTokenInteractive(_scopes)
.WithParentActivityOrWindow(() => currentActivity)
.ExecuteAsync();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"MSAL Exception: {ex.Message}");
throw;
}
}

if (result == null)
{
System.Diagnostics.Debug.WriteLine("MSAL: Token acquisition failed, result is null.");
throw new InvalidOperationException("Token acquisition failed.");
}

System.Diagnostics.Debug.WriteLine($"MSAL: Token acquired successfully. Access Token: {result.AccessToken}");

var connection = new SqlConnection(_sqlConnectionString)
{
AccessToken = result.AccessToken
};

return connection;
}
}



Подробнее здесь: https://stackoverflow.com/questions/794 ... oid-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»