我正试图将对Graph的支持添加到.Net 6应用程序中。我以前在.Net 5应用程序中使用过Graph,但我在理解如何使用.Net 6";简化的";启动。
我把两者都包括在内:
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;
在Program.cs的标题中,但我在下面的AddMicrosoftIdentityWebApp中遇到错误:
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi(initialScopes)
.AddMicrosoftGraph(builder.Configuration.GetSection("DownstreamApi"))
.AddInMemoryTokenCaches();
我得到的错误是:
Error CS1061 'AuthenticationBuilder' does not contain a definition for 'AddMicrosoftIdentityWebApp' and no accessible extension method 'AddMicrosoftIdentityWebApp' accepting a first argument of type 'AuthenticationBuilder' could be found (are you missing a using directive or an assembly reference?)
我确信我忽略了一些非常简单的东西,但我找不到
任何建议都将不胜感激。
感谢您的回复。
事实证明,我发现问题出在安装了一个不正确的软件包上。我在解决方案的包中包含了Decos.Microsoft.Identity.Web。我怀疑这里发生了一些碰撞。一旦我删除了包,错误就不再显示出来了。
"错误CS1061"AuthenticationBuilder"不包含"AddMicrosoftIdentityWebApp"的定义,并且找不到接受"AuthenticationBuild"类型的第一个参数的可访问扩展方法"AddMicrosoftIdentity WebApp"(是否缺少using指令或程序集引用?(">
要解决上述错误,如果有帮助,请尝试以下建议:
-
包含
Microsoft.Identity.Web
和Microsoft.Identity.Web.UI
包时,这些库用于简化用户登录和获取Microsoft Graph令牌的过程。 -
尝试通过删除前缀
builder
来修改配置的服务方法,如下所示:
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi(initialScopes)
.AddMicrosoftGraph(Configuration.GetSection("DownstreamApi"))
.AddInMemoryTokenCaches();
要使用Microsoft身份平台端点
AddMicrosoftIdentityWebApp()
为您的应用程序登录用户。EnableTokenAcquisitionToCallDownstreamApi()
和AddMicrosoftGraph
增加了对调用Microsoft Graph的支持。否则,如果要使用
builder
请确保使用Microsoft.AspNetCore.Identity
添加程序包,并将builder
定义如下:
var builder = WebApplication.CreateBuilder(args);
有关更多详细信息,请参考以下链接:
active-directory-aspnetcore-webapp-openidconnect-v2/README.md在master·Azure Samples/active-directory-aspnet-core-webapp-openidconnect-v2·GitHub上。
配置ASP.NET核心标识|Microsoft文档。