2016-10-14 31 views
1

私はASP.NET Core 1.0プロジェクトを実行しています。私のアクションメソッドにClaimsPrinciplePermission属性を追加すると、その属性を持つアクションメソッドにナビゲートするときに次のエラーが発生します。web.configでsystem.identityModelが検出されない

は「System.InvalidOperationException」種類の例外は System.IdentityModel.Services.dllで発生したが、ユーザーコードで処理されなかった

追加情報:ID7024:ClaimsPrincipalPermissionの使用は 属性が試みられているとおそらく、 構成セクションが定義されていない可能性があります。詳しくは、内側の 例外を参照してください。また、ClaimsAuthorizationManager 要素がこのセクションの下で定義されていることを確認してください。

これは、内部例外

ID7027である:なし 構成セクションが見つからなかったため、アイデンティティコンフィギュレーションをロードできませんでした。

これは、あなたが見ることができるように、私はすべての必要なセクションを追加した

<?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> 

私のweb.configファイルです。同じコードと設定は、MVC 5プロジェクトとWeb APIプロジェクトでうまくいきます。 Asp.Net Coreプロジェクトでは何か別のことがありますか?

また、コア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を意味しますか? configファイルの設定セクションをjsonフォーマットに変換する方法がわかりません。私が見つけることができる例はありません。 web.configが機能しない場合、なぜ新しいaspnetcoreプロジェクトを作成するときにプロジェクトで提供されるのですか? – user20358

答えて

2

ClaimsPrincipalPermission、WIF/System.IdentityModelは.NET Coreの一部ではありません。コンパイルしても驚いています。

JWTを解析しているようです。おそらくJWTベアラトークンミドルウェアです。

したがって、ASP.NET CoreのすべてのIDはClaimsIdentitiesです。 Simple claims based checks、またはより完全にcode expressed policiesに行くことができます。これにより多くの柔軟性が得られます。

+0

これと同等のものは何ですか?私は、認証にクレームベースのアプローチを使用するWeb APIを持っています。私はコアプロジェクトでも同じアプローチを再利用することを計画していたので、ライブラリを共有して両方のプロジェクトで同じ秘密鍵を使用することができました。 Web APIプロジェクトは既に使用されています。私はasp.netコアを使用して完全にドロップし、MVC 5と同等のものがない場合はどうすればいいですか? – user20358

+0

クレームベースはどういう意味ですか?あなたはWS-FedとSAMLを意味しているのですか、またはClaimsPrincipalに基づいたアイデンティティーだけですか。 – blowdart

+1

テンプレートでは非常に多くの異なるプロジェクトを選択できます。選択する項目と選択しない項目を明確に区別することはできません。ドキュメントが不完全または古いと思われる – user20358

関連する問題