我正在我的 asp.net core api 上实现 MSAL.NET。
下面是我的示例代码。当我在本地计算机上运行它时,它工作得非常好。从 MSAL 弹出窗口登录。
var app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.WithTenantId(tenantId)
.Build();
var result = await app.AcquireTokenInteractive(scopes).ExecuteAsync();
当我将其部署在 Azure 虚拟机上时。来自 MSAL 的登录不会弹出,并且始终处于待处理状态。我检查事件日志,它给了我以下错误日志:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{3480A401-BDE9-4407-BC02-798A866A****}
and APPID
{30AD8C8E-AE85-42FA-B9E8-7E99E3DF****}
to the user IIS APPPOOL\DefaultAppPool SID (S-1-5-82-3713467212-4047885013-3661040889-683609825-2140) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.
知道我应该做什么吗?
尝试使用此解决方案
1) 以管理员身份打开注册表编辑器,然后导航至 HKEY_CLASSES_ROOT\CLSID 或 APP ID。有 APPID 作为值。记住应用程序名称,您可以在数据栏中看到,相应的名称栏显示(默认)。
2) 在左侧窗格中: 右键单击APPID键y并选择权限:
3) 在权限窗口中,单击高级。 单击更改并输入您的管理员帐户。然后点击确定。
4)双击打开管理员条目。选择完全控制复选框以向管理员授予完全权限,然后按确定。
5)然后修改COM Server应用程序的权限。打开组件服务同时打开dcomcnfg
6) 展开组件服务 -> 计算机 -> 我的电脑 -> DCOM 配置。从视图菜单中选择详细信息。
7) 右键单击 APPID 名称(例如本例中的“PerAppRuntimeBroker”)并选择 Properties。
8) 选择安全选项卡,单击编辑启动和激活权限
9) 单击适用于您的名称,然后单击相应的权限。
更多详情请参阅此文档:
您能找到解决这个问题的方法吗? 我现在也遇到同样的事情。