0

私は何かが欠けているに違いありませんが、私はそれを見ることができません。
私は新しい「空の」ASP.NETコア2.0プロジェクト
私はEFコア2.0およびEFコアを追加を作成した2.0次のエラーメッセージで失敗を復元し、私はその後、IdentityServer4 2.0 RC1を追加しようと、私はパッケージを取得
アイデンティティNuGetパッケージを復元中IdentityServer4とASP.NET Core 2.0

エラーが発生しました:シーケンスは、より多くの よりも一致する要素

が含まれています、私は完全に混乱していますので、このプロジェクトにはコードがありません。ここで

は、csprojファイルである:ここで

<Project Sdk="Microsoft.NET.Sdk.Web"> 

    <PropertyGroup> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
    </PropertyGroup> 

    <ItemGroup> 
    <Folder Include="wwwroot\" /> 
    </ItemGroup> 

    <ItemGroup> 
    <PackageReference Include="IdentityServer4" Version="2.0.0-rc1-update1" /> 
    <PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.0.0-rc1" /> 
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" /> 
    <PackageReference Include="NETStandard.Library" Version="2.0.0" /> 
    </ItemGroup> 
    <ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" /> 
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" /> 
    </ItemGroup> 
</Project> 

パッケージマネージャコンソールからNuGet.orgに私の呼び出しです:

PM>インストール・パッケージをIdentityServer4.AspNetIdentity -Version 2.0.0 \プロトタイプ\ IdentityServer4 \ IdentityServer4 \ IdentityServ: D用のパッケージを復元-rc1 -Prerelease GET https://api.nuget.org/v3/registration3-gz-semver2/identityserver4.aspnetidentity/index.json OK https://api.nuget.org/v3/registration3-gz-semver2/identityserver4.aspnetidentity/index.json 484ms er4.csproj ... インストールパッケージ:シーケンスに一致する要素が複数含まれています 行:1文字:1 + Install-Package IdentityServer4.AspNetIdentity -Version 2.0.0-rc1 -Pr ... + ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [インストール・パッケージ]、例外 + FullyQualifiedErrorId:NuGetCmdletUnhandledException、NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand 経過時間: 00:00:03.7728514 PM>

+0

MyIdentityServer4にプロジェクトの名前を変更してみてください。これは、インストールしているパッケージ(IdentityServer4)と同じ名前のプロジェクトが原因である可能性があります。 – Peter

+0

今、私は完全なID10Tのように感じる!ありがとう@Peter –

答えて

0

以下は、プロジェクトをasp.netコア2.0に移行するいくつかの変更点です。 ステップ1: 次のリンクからasp.net core 2.0 gx64xをダウンロードしてビジュアルスタジオ2017をダウンロードしてください。 https://www.microsoft.com/net/download/core ステップ2: Nugetパッケージからダウンロードまたはパッケージマネージャコンソールから 1-インストール・パッケージIdentityServer4 -Version 2.0.0 2 - インストール・パッケージIdentityServer4.AspNetIdentity -Version 2.0.0-RC1-アップデート2

ステップ3: Csprojファイルの一部のコードを更新します。 前: netcoreapp1.1後: netcoreapp2.0

Before: 
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.1" /> 
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.1.1" /> 
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="1.1.1" /> 
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" /> 
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" /> 
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.1.1" /> 
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.1.1" /> 
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" /> 
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.1" /> 
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.1" /> 
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.1" /> 
<PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.1" /> 
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" /> 
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" /> 
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.1" /> 
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" /> 
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0" /> 
After: 
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /> 

Before: 
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> 
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0" /> 
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" /> 
  
After: 
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" /> 
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" /> 

ステップ4:Program.csがクラス における更新前: パブリック静的無効メイン(文字列[] args){ VARホスト= new WebHostBuilder() .UseKestrel() .UseContentRoot(ディレクトリ.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() 。ビルド(); ホスト。Run(); } 後: public static void Main(string [] args) { BuildWebHost(args).Run(); }パブリック静的IWebHost BuildWebHost(文字列[]引数)=> WebHost.CreateDefaultBuilder(引数) .UseStartup() .Build()。 ステップ5:StartUp.cs

で 更新
services.AddIdentityServer() 
        .AddDeveloperSigningCredential() 
        .AddInMemoryPersistedGrants() 
        .AddInMemoryIdentityResources(Config.GetIdentityResources()) 
        .AddInMemoryApiResources(Config.GetApiResources()) 
        .AddInMemoryClients(Config.GetClients()) 
        .AddAspNetIdentity<ApplicationUser>(); 

     Before: 
     app.UseIdentity(); 
     After: 
     app.UseAuthentication(); 

ステップ6:ログインのViewModelを管理、変更

Before: 
public IList<AuthenticationDescription> OtherLogins { get; set; } 
  
After: 
public IList<AuthenticationScheme> OtherLogins { get; set; } 

ステップ7:マネージャコントローラで 変更

Before: 
var otherLogins = _signInManager 
                  .GetExternalAuthenticationSchemes() 
                  .Where(auth => userLogins 
                                 .All(ul => auth.AuthenticationScheme != ul.LoginProvider)) 
                  .ToList(); 
  
After: 
var otherLogins = (await _signInManager 
                   .GetExternalAuthenticationSchemesAsync()) 
                  .Where(auth => userLogins 
                                 .All(ul => auth.Name != ul.LoginProvider)) 
                  .ToList(); 

ステップ8: sin Login.cshtmlファイルを変更してください 前: var loginP roviders = SignInManager.GetExternalAuthenticationSchemes()。ToList(); 後: var loginProviders =(SignInManager.GetExternalAuthenticationSchemesAsync()を待機します)ToList();

Before: 
<button type="submit" class="btn btn-default" 
        name="provider" value="@provider.AuthenticationScheme" 
        title="Log in using your @provider.DisplayName account"> 
    @provider.AuthenticationScheme 
</button> 
  
After: 
<button type="submit" class="btn btn-default" 
        name="provider" value="@provider.Name" 
        title="Log in using your @provider.DisplayName account"> 
    @provider.Name 
</button> 
関連する問題