You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Web Form点击按钮连接Office 365 Outlook并通过API编程登录方法咨询

实现方案

完全可以通过 Azure AD 身份认证 + Microsoft Graph API 的标准方案实现需求,具体操作步骤如下:

1. 前置配置准备

  • 访问Azure门户注册应用,账户类型选择任意组织账户+个人Microsoft账户,重定向URI填写你的ASP.NET应用回调地址,示例值为https://localhost:端口号/signin-oidc
  • 注册完成后记录客户端ID(ClientId)、租户ID(TenantId),进入「证书和密码」板块创建客户端密码,保存生成的密码值
  • 进入API权限管理页,添加Microsoft Graph的委托权限,根据你的业务需求勾选Mail.Read/Mail.Send/Calendars.ReadWrite等Outlook相关权限,企业级应用需要点击「授予管理员同意」完成权限激活

2. ASP.NET项目配置

以ASP.NET Core项目为例:

  • 先安装对应NuGet包:
    Install-Package Microsoft.Identity.Web
    Install-Package Microsoft.Identity.Web.MicrosoftGraph
  • 在appsettings.json中添加认证配置:
"AzureAd": {
  "Instance": "https://login.microsoftonline.com/",
  "Domain": "你的应用域名",
  "TenantId": "之前记录的租户ID",
  "ClientId": "之前记录的客户端ID",
  "ClientSecret": "之前记录的客户端密码",
  "CallbackPath": "/signin-oidc"
},
"GraphApi": {
  "BaseUrl": "https://graph.microsoft.com/v1.0",
  "Scopes": "Mail.Read Mail.Send"
}
  • 修改Program.cs注册认证服务:
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"))
    .EnableTokenAcquisitionToCallDownstreamApi(new string[] { "Mail.Read", "Mail.Send" })
    .AddMicrosoftGraph(builder.Configuration.GetSection("GraphApi"))
    .AddInMemoryTokenCaches();

builder.Services.AddControllersWithViews().AddMicrosoftIdentityUI();

3. 功能实现

  • 前端页面添加登录按钮,跳转地址配置为/MicrosoftIdentity/Account/SignIn,用户点击后会自动跳转Office 365登录页,完成授权后会自动回调回你的应用
  • 需要调用Outlook API时,直接在控制器中注入GraphServiceClient即可调用,示例获取用户最近10封邮件的代码如下:
[Authorize]
public async Task<IActionResult> GetOutlookMails()
{
    var mailList = await _graphServiceClient.Me.Messages
        .Request()
        .Select(m => new {m.Subject, m.Sender, m.ReceivedDateTime})
        .Top(10)
        .GetAsync();
    return View(mailList);
}

注意事项

如果需要无用户交互的后台调用场景,将权限类型改为应用权限,使用客户端凭证流认证即可实现纯代码自动登录调用
生产环境不要把客户端密码明文写在配置文件中,建议用密钥托管服务存储敏感信息

内容的提问来源于stack exchange,提问作者syed saif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:24:10