2017-08-28 152 views
1

我已將項目升級到asp.net核心。但現在我的CookieAuthnetication和OpenIdConnectionAuthentication方法不起作用。它們已經過時了。無法在asp.net核心2.0中使用CookieAuthenticaton和openidConnect身份驗證

Startup.cs配置方法

app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationScheme = "Cookies" 
      }); 

      app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions 
      { 
       AuthenticationScheme = "oidc", 
       SignInScheme = "Cookies", 
       Authority = "http://localhost:5000", 
       RequireHttpsMetadata = false, 
       ClientId = "integapay.client", 
       ClientSecret = "mySecret", 
       ResponseType = "code id_token", 
       Scope = { "openid", "profile", "api.public", "offline_access" }, 
       GetClaimsFromUserInfoEndpoint = true, 
       SaveTokens = true 
      }); 

回答

2

他們搬到入Conifguration服務部分

public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc();  
     services.AddAuthentication(options => { 
         options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; 
         options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; 
        }) 
     .AddCookie() 
     .AddOpenIdConnect(options => SetOpenIdConnectOptions(options)); 
    } 
    private void SetOpenIdConnectOptions(OpenIdConnectOptions options) 
    {   
     options.Authority = Configuration["auth:oidc:authority"]; 
     options.ClientId = Configuration["auth:oidc:clientid"]; 
     options.RequireHttpsMetadata = false; 
     options.ClientSecret = Configuration["auth:oidc:clientSecret"]; 
     options.SignInScheme = "Cookies"; 
     options.SaveTokens = true; 
     options.GetClaimsFromUserInfoEndpoint = true; 
     options.ResponseType = "code id_token"; 

     options.Scope.Add("openid"); 
     options.Scope.Add("profile"); 
     options.Scope.Add("api_back"); 
     options.Scope.Add("offline_access"); 
    } 

在配置呼叫你只需要調用

app.UseAuthentication(); 

希望這有助於。 :)

相關問題