2016-11-18 4 views
0

Im Anschluss an diese Official ASP.NET Article habe ich von ASP.NET Core 1.0 auf 1.1 aktualisiert. Aber wenn mein ASP.NET Core-Projekt kompilieren bekomme ich die folgenden Fehler in AccountController.cs Datei:Problem nach der Aktualisierung von ASP.NET Core 1.0 auf 1.1

Fehler:

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)' 

Der Fehler bei folgenden in Zeile ist var email = info.Principal.FindFirstValue(ClaimTypes.Email); am Ende der folgenden Aktionsmethode :

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

Könnte das Pre-RTM Identity-Paket sein, das Sie verwenden. Können Sie von "Microsoft.AspNet.Identity.EntityFramework" zu "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0" wechseln und sehen, ob das Problem dadurch gelöst wird? – Pranav

+0

@Pranav Aber, wie Sie in der Datei project.json bemerken würde, habe ich über den "Microsoft.AspNetCore.Identity.EntityFrameworkCore" geschrieben: "1.1.0" 'ist bereits da. – nam

+1

In diesem Fall versuchen Sie, '" Microsoft.AspNet.Identity.EntityFramework ":" 3.0.0-rc1-final "' zu entfernen. Es ist das erste Element in Ihren Abhängigkeiten. – Pranav

Antwort

0

Versuchen Sie, "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final" aus Ihren Abhängigkeiten zu entfernen. Mischen von Paketen aus verschiedenen Releases - in diesem Fall sind vor RTM und 1.1.0 in der Regel die Ursache für eine solche API-Mehrdeutigkeit.