Консольное приложение 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
Аутентификация приложения консоли с использованием современной аутентификации ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Будет ли Comparator.comparing… в методеcompareToоптимизирован компилятором современной Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-