Клиент Microsoft Graph в ошибке веб-приложения ASP.NET Core MVCC#

Место общения программистов C#
Anonymous
Клиент Microsoft Graph в ошибке веб-приложения ASP.NET Core MVC

Сообщение Anonymous »

Я пытаюсь получить график, чтобы вернуть некоторые пользовательские атрибуты из Entra. Мне нужно использовать GraphClient.Me.GetAsync(). Когда я запускаю проект из Visual Studio, мне запрашивают учетные данные Entra, а затем появляется следующее сообщение об ошибке:

При обработке запроса произошло необработанное исключение.

TypeLoadException: не удалось загрузить тип «Microsoft.Graph.IAuthenticationProviderOption» из сборки «Microsoft.Graph.Core, Version=3.1.22.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx».
Вот моя настройка — я добавил эти пакеты:

Код: Выделить всё

Microsoft.Graph v.5.61
Microsoft.Identity.Web 3.2.2
Microsoft.Identity.Web.MicrosoftGraph v. 3.2.2
Добавлено в appsettings.json:

Код: Выделить всё

{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "yourdomain.onmicrosoft.com",
"TenantId": "your-tenant-id",
"ClientId": "your-client-id",
"ClientSecret": "your-client-secret",
"CallbackPath": "/signin-oidc"
}
}
Добавлено в Program.cs:

Код: Выделить всё

using Microsoft.Identity.Web;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;

var builder = WebApplication.CreateBuilder(args);

// Add authentication and Microsoft Identity
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"));

// Add Graph API client
builder.Services.AddMicrosoftGraph(options =>
{
options.Scopes = "User.Read"; // Ensure this scope is granted in Azure portal
});

builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();
А это мой контроллер:

Код: Выделить всё

[Authorize]
public class HomeController : Controller
{
private readonly GraphServiceClient _graphClient;

public HomeController(GraphServiceClient graphClient)
{
_graphClient = graphClient;
}

public async Task Index()
{
// Get the user's information
var user = await _graphClient.Me.GetAsync();

// Access the user's email
var email = user.Mail ?? user.UserPrincipalName;

ViewBag.Email = email;

return View();
}
}
Есть идеи, что я делаю неправильно?
Я пробовал разные версии пакетов, другой код в Program.cs.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -app-error

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