1

ASP.NET Core 1.0 프로젝트를 실행 중입니다. ClaimsPrinciplePermission 특성을 내 동작 메서드에 추가 할 때 해당 특성을 갖는 작업 메서드로 이동할 때 다음 오류가 발생합니다.web.config에서 system.identityModel을 찾을 수 없습니다.

가 '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 프로젝트와 웹 API 프로젝트에서도 동일한 코드와 구성이 잘 작동합니다. Asp.Net 핵심 프로젝트에서 수행해야 할 다른 것이 있습니까?

코어 1.0 MVC 프로젝트에 필요한 DLL 참조를 추가하고 코어 1.0 MVC 프로젝트의 App.config 파일에도 동일한 구성 섹션을 복제했습니다. 여전히 같은 오류가 발생합니다.

무엇이 누락 되었습니까?

+0

시작 클래스에서 ID를 어떻게 구성합니까? .Net Core는 web.config 파일을 읽지 않습니다. –

+0

AFAIK, ASP .NET 코어는 'project.json'을 구성 파일로 사용하고 web.config 파일과 app.config 파일을 사용하지 않았습니다. 모든'IdentityModel' 참조를 프로젝트 파일에 추가하고 관련 의존성을 확인하십시오. –

+1

@ TetsuyaYamamoto 당신은 appsettings.json을 의미합니까? 구성 파일의 구성을 json 형식으로 변환하는 방법을 모르겠습니다. 내가 찾을 수있는 예제가 없습니다. web.config가 작동하지 않으면 새로운 aspnetcore 프로젝트를 만들 때 왜 프로젝트에서 제공됩니까? – user20358

답변

2

ClaimPrincipalPermission 및 WIF/System.IdentityModel은 .NET Core에 전혀 포함되어 있지 않습니다. 나는 심지어 컴파일하는 것이 놀랍다.

주석에서 JWT를 구문 분석하고있는 것으로 보입니다. 아마 JWT 베어러 토큰 미들웨어를 사용하고있을 것입니다.

따라서 ASP.NET 코어의 모든 ID는 ClaimsIdentities입니다. Simple claims based checks 또는 더 많은 유연성을 제공하는 code expressed policies으로 갈 수 있습니다.

+0

다음과 동등한 무엇입니까?나는 주장에 기반한 인증 접근법을 사용하는 웹 API를 가지고있다. 핵심 프로젝트에서 동일한 접근 방식을 재사용 할 계획이기 때문에 라이브러리를 공유하고 두 프로젝트에서 동일한 비밀 키를 사용할 수있었습니다. 웹 API 프로젝트가 이미 사용 중입니다. 나는 asp.net 코어를 사용하여 모두 삭제해야하며 MVC 5와 동등한 것이 없다면 그냥 가야합니까? – user20358

+0

클레임 기반이란 무엇을 의미합니까? 당신은 WS-Fed와 SAML을, 아니면 ClaimsPrincipal을 기반으로하는 어떤 신원을 의미합니까? – blowdart

+1

템플릿에서 선택할 수있는 프로젝트가 너무 많아서 선택해야 할 항목과 피하는 주제 사이에 명확한 경로가 없습니다. 문서가 불완전하거나 오래된 것으로 보입니다. – user20358

관련 문제