Аутентификация приложения консоли с использованием современной аутентификацииC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Аутентификация приложения консоли с использованием современной аутентификации

Сообщение Anonymous »

Консольное приложение C#, которое работает как фоновое задание от планировщика задач Windows, использует простую аутентификацию с жестким именем пользователя и паролем для подключения к SharePoint. Меня попросили заменить простую аутентификацию на любую современную аутентификацию. Я погуглил и обнаружил, что мне нужна аутентификация без интерактивного браузера, поскольку это фоновое задание. Так что у меня есть два вопроса здесь: < /p>

Достаточно ли код ниже для аутентификации без интерактивного браузера? В нем показаны идентификация включенного списка, SharePoint и т. Д. Достаточно ли их, чтобы попробовать ниже код?using System;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Graph;
using Microsoft.Identity.Client;

class Program
{
private static async Task Main(string[] args)
{
string tenantId = "YOUR_TENANT_ID";
string clientId = "YOUR_CLIENT_ID";
string clientSecret = "YOUR_CLIENT_SECRET";

var scopes = new[] { "https://graph.microsoft.com/.default" };

// Create an authentication provider
var confidentialClient = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithClientSecret(clientSecret)
.WithAuthority($"https://login.microsoftonline.com/{tenantId}")
.Build();

var authProvider = new DelegateAuthenticationProvider(async (requestMessage) =>
{
var authResult = await confidentialClient.AcquireTokenForClient(scopes).ExecuteAsync();
requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", authResult.AccessToken);
});

// Create GraphServiceClient
var graphClient = new GraphServiceClient(authProvider);

// Fetch SharePoint site details
await GetSharePointSite(graphClient);
}

private static async Task GetSharePointSite(GraphServiceClient graphClient)
{
try
{
var site = await graphClient.Sites["contoso.sharepoint.com"].Request().GetAsync();
Console.WriteLine($"Site ID: {site.Id}");
Console.WriteLine($"Site Name: {site.DisplayName}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... entication
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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