MSAL.NET(权限设置不授予具有 CLSID 的 COM 服务器应用程序的本地激活权限)

Posted

技术标签:

【中文标题】MSAL.NET(权限设置不授予具有 CLSID 的 COM 服务器应用程序的本地激活权限)【英文标题】:MSAL.NET (permission settings do not grant Local Activation permission for the COM Server application with CLSID) 【发布时间】:2022-01-14 10:40:00 【问题描述】:

我正在我的 asp.net 核心 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】:

试试这个解决方案

1)以管理员身份打开注册表编辑器并导航到HKEY_CLASSES_ROOT\CLSID 或APP ID。有 APPID 作为值。记住应用名称,可以在Data栏看到,对应的Name栏显示(默认)。

2) 在左侧窗格中:右键单击 APPID 键y 并选择权限

3)权限窗口中,点击高级。点击更改并输入您的管理员帐户。然后点击确定

4) 双击以打开管理员条目。选中 完全控制 复选框以授予管理员完全权限,然后按 OK。

5)然后修改COM Server应用程序的权限。打开组件服务同时打开dcomcnfg强>

6)展开组件服务->计算机->我的电脑->DCOM配置。从查看菜单选择详细信息。

7) 右键单击 APPID 名称(例如本例中的“PerAppRuntimeBroker”)并选择Properties。

8)选择Security标签,点击Edit on Launch & Activation Permissions

9)点击适用于您的名称并点击相应的权限。

有关详细信息,请参阅此文档:

    https://www.wintips.org/fix-application-specific-permission-settings-do-not-grant-local-activation-permission-for-com-server-application/#image

    The application-specific permission settings do not grant Local Activation permission

【讨论】:

嗨@ShruitiJoshi-MT 它不起作用。问题仍然存在。并且 MSAL 弹出登录仍然没有弹出。 得到相同的错误还是不同的错误? 是的,我仍然遇到同样的错误。 您是否在执行上述步骤后尝试重启或重新连接到虚拟机?

以上是关于MSAL.NET(权限设置不授予具有 CLSID 的 COM 服务器应用程序的本地激活权限)的主要内容,如果未能解决你的问题,请参考以下文章

如何授予用户角色具有授予选项的权限?

C# 授予对特定不相关类的访问权限

如何根据实体类型授予权限?

系统日志发出错误信息:应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行

win10系统日志出现错误 DistributedCOM

win10电脑自动重启 出现10016错误