.net core: аутентификация в LinkedIn - PullRequest
1 голос
/ 20 июня 2019

Я использую аутентификацию LinkedIn для моего основного приложения .Net.

Я настроил параметры linkIn, однако await _signInManager.GetExternalLoginInfoAsync() возвращает ноль?

.AddOAuth("LinkedIn", l_options =>
{
    l_options.ClientId = linkedinSettingsSection.Get<LinkedInAuthSettings>().ClientId;
    l_options.ClientSecret = linkedinSettingsSection.Get<LinkedInAuthSettings>().ClientSecret;

    l_options.CallbackPath = "/PerfromExternalLogin";
    l_options.AuthorizationEndpoint = "https://www.linkedin.com/oauth/v2/authorization";
    l_options.TokenEndpoint = "https://www.linkedin.com/oauth/v2/accessToken";
    l_options.UserInformationEndpoint = "https://api.linkedin.com/v1/people/~:(id,formatted-name,email-address,picture-url)";

    l_options.Events = new OAuthEvents()
    {
        OnRemoteFailure = loginFailureHandler =>
        {
            var authProperties = l_options.StateDataFormat.Unprotect(loginFailureHandler.Request.Query["state"]);
            loginFailureHandler.Response.Redirect("/PerfromExternalLogin");
            loginFailureHandler.HandleResponse();
            return Task.FromResult(0);
        }
    };
});

1 Ответ

0 голосов
/ 21 июня 2019

Кажется, вы используете ASP.NET Identity с аутентификацией LinkedIn.Я бы посоветовал вам выполнить следующие шаги, чтобы добиться этого:

  1. Создать Individual User Account шаблон аутентификации Asp.net Core application.

  2. Установить Nugetпакет AspNet.Security.OAuth.LinkedIn для реализации аутентификации LinkedIn в веб-приложении.

  3. Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Manage User Secrets в контекстном меню, откроется файл secrets.json,введите в него свои учетные данные:

    {
        "Authentication:LinkedIn:ClientId": "YourClientID",
        "Authentication:LinkedIn:ClientSecret": "YourSecret"
    }
    
  4. В Startup.cs файле и измените ConfigureServices метод:

    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection")));
    services.AddDefaultIdentity<IdentityUser>()
        .AddDefaultUI(UIFramework.Bootstrap4)
        .AddEntityFrameworkStores<ApplicationDbContext>();
    
    services.AddAuthentication().AddLinkedIn(options =>
    {
        options.ClientId = Configuration["Authentication:LinkedIn:ClientId"];
        options.ClientSecret = Configuration["Authentication:LinkedIn:ClientSecret"];
    });
    
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...