我正在运行一个ASP.NET Core 1.0项目。当我将ClaimsPrinciplePermission属性添加到我的操作方法时,导航到具有该属性的任何操作方法时会出现以下错误。
类型' System.InvalidOperationException'的例外情况发生在 System.IdentityModel.Services.dll但未在用户代码中处理
其他信息:ID7024:ClaimsPrincipalPermission的使用 属性已被尝试,可能没有 配置部分定义,见内部 细节例外。还要确保一个ClaimsAuthorizationManager 元素在该部分下定义。
这是内部异常
ID7027:无法加载身份配置,因为没有 配置部分被发现。
这是我的web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
-->
<configSections>
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</configSections>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
</federationConfiguration>
</system.identityModel.services>
<system.identityModel>
<identityConfiguration>
<claimsAuthorizationManager type="wApp.ClaimManager, wApp" />
</identityConfiguration>
</system.identityModel>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
如您所见,我添加了所有必需的部分。相同的代码和配置适用于我的MVC 5项目以及我的Web Api项目。在Asp.Net核心项目中有什么不同的东西吗?
我还在Core 1.0 MVC项目中添加了所需的DLL引用,并在核心1.0 MVC项目下的App.config文件中复制了相同的配置部分。仍然得到同样的错误。
我错过了什么?
答案 0 :(得分:2)
ClaimsPrincipalPermission,WIF / System.IdentityModel根本不是.NET Core的一部分。我甚至惊讶于编译。
从评论中可以看出,您正在解析JWT,大概是使用JWT承载令牌中间件。
因此,ASP.NET Core中的所有身份都是ClaimsIdentities。您可以使用Simple claims based checks,或者更全面地使用code expressed policies,这样可以提供更多灵活性。