要使用ASP.NET Core和Microsoft Graph,您可以按照以下步骤进行操作:
创建一个新的ASP.NET Core项目。
在项目中安装Microsoft.Identity.Web和Microsoft.Graph包。
dotnet add package Microsoft.Identity.Web
dotnet add package Microsoft.Graph
在Startup.cs文件中,添加以下代码来配置身份验证和授权:
using Microsoft.Identity.Web;
...
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi()
.AddMicrosoftGraph(Configuration.GetSection("Graph"))
.AddInMemoryTokenCaches();
...
}
在appsettings.json文件中,配置Microsoft Graph的设置:
"Graph": {
"BaseUrl": "https://graph.microsoft.com/v1.0",
"Scopes": "user.read"
}
在控制器中,您可以使用Microsoft Graph服务来调用API。例如,以下代码将获取当前用户的名称并返回给视图:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Microsoft.Graph;
using Microsoft.Identity.Web;
namespace YourNamespace.Controllers
{
public class HomeController : Controller
{
private readonly ITokenAcquisition _tokenAcquisition;
private readonly ILogger _logger;
private readonly GraphServiceClient _graphServiceClient;
public HomeController(
ITokenAcquisition tokenAcquisition,
ILogger logger,
GraphServiceClient graphServiceClient)
{
_tokenAcquisition = tokenAcquisition;
_logger = logger;
_graphServiceClient = graphServiceClient;
}
public async Task Index()
{
var accessToken = await _tokenAcquisition.GetAccessTokenForUserAsync(new[] { "user.read" });
_graphServiceClient.AuthenticationProvider = new DelegateAuthenticationProvider(async (requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
});
var user = await _graphServiceClient.Me.Request().GetAsync();
var userName = user.DisplayName;
return View(userName);
}
}
}
这是一个基本示例,您可以根据自己的需要进一步扩展和修改代码。