2016-11-18 15 views
0

これに続いて、Official ASP.NET Article ASP.NET Core 1.0から1.1にアップデートしました。私のASP.NETコアプロジェクトをコンパイルするときしかし、私はAccountController.csファイルに次のエラーが表示されます。ASP.NETコア1.0から1.1にアップデートした後の問題

エラー:

The call is ambiguous between the following methods or properties: 'System.Security.Claims.PrincipalExtensions.FindFirstValue(System.Security.Claims.ClaimsPrincipal, string)' and 'System.Security.Claims.PrincipalExtensions.FindFirstValue(System.Security.Claims.ClaimsPrincipal, string)' 

エラーは、次のアクションメソッドの終わりにラインvar email = info.Principal.FindFirstValue(ClaimTypes.Email);で次のようにあり

public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null) 
     { 
      if (remoteError != null) 
      { 
       ModelState.AddModelError(string.Empty, $"Error from external provider: {remoteError}"); 
       return View(nameof(Login)); 
      } 
      var info = await _signInManager.GetExternalLoginInfoAsync(); 
      if (info == null) 
      { 
       return RedirectToAction(nameof(Login)); 
      } 

      // Sign in the user with this external login provider if the user already has a login. 
      var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent: false); 
      if (result.Succeeded) 
      { 
       _logger.LogInformation(5, "User logged in with {Name} provider.", info.LoginProvider); 
       return RedirectToLocal(returnUrl); 
      } 
      if (result.RequiresTwoFactor) 
      { 
       return RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl }); 
      } 
      if (result.IsLockedOut) 
      { 
       return View("Lockout"); 
      } 
      else 
      { 
       // If the user does not have an account, then ask the user to create an account. 
       ViewData["ReturnUrl"] = returnUrl; 
       ViewData["LoginProvider"] = info.LoginProvider; 
       var email = info.Principal.FindFirstValue(ClaimTypes.Email); 
       return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = email }); 
      } 
     } 

project.json

{ 
    "userSecretsId": "aspnet-ABCTest-6af8ade3-87ff-4468-a9ce-8bb69c696ab8", 

    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.1.0", 
     "type": "platform" 
    }, 
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", 
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
    "Microsoft.AspNetCore.Mvc": "1.1.0", 
    "Microsoft.AspNetCore.Mvc.Core": "1.1.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0", 
    "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.1.0", 
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.1.0", 
    "Microsoft.AspNetCore.Identity": "1.1.0", 
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0", 
    "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final", 
    "Microsoft.AspNetCore.StaticFiles": "1.1.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 
    "Microsoft.Extensions.Configuration.Json": "1.1.0", 
    "Microsoft.Extensions.Configuration.UserSecrets": "1.1.0", 
    "Microsoft.Extensions.Logging": "1.1.0", 
    "Microsoft.Extensions.Logging.Console": "1.1.0", 
    "Microsoft.Extensions.Logging.Debug": "1.1.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0", 
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final", 
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.1.0-preview4-final" }, 

    "tools": { 
    "BundlerMinifier.Core": "2.0.238" }, 

    "frameworks": { 
    "netcoreapp1.1": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "prepublish": [ "bower install", "dotnet bundle" ], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 
+0

あなたが使用しているRTM以前のIDパッケージである可能性があります。あなたは 'Microsoft.AspNet.Identity.EntityFramework'から' 'Microsoft.AspNetCore.Identity.EntityFrameworkCore '':" 1.1.0 "'に切り替えて、それがこの問題を解決するかどうか確認できますか? – Pranav

+0

@Pranavしかし、上記の「Microsoft.AspNetCore.Identity.EntityFrameworkCore」の上に載っているproject.jsonファイルに気付くように、「1.1.0」は既にそこにあります。 – nam

+1

その場合は、「Microsoft.AspNet.Identity.EntityFramework」:「3.0.0-rc1-final」を削除してみてください。依存関係の最初の項目です。 – Pranav

答えて

0

あなたの依存関係から"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final"を削除してみてください。異なるリリースのパッケージを混在させる - この場合、pre-RTMと1.1.0は通常、そのようなAPIあいまいさの原因です。

関連する問題