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 服务器应用程序的本地激活权限)的主要内容,如果未能解决你的问题,请参考以下文章