| 

.NET C# Java Javascript Exception

1
Hallo NG,

ich habe versucht die Authentifizierung wie hier erklärt zu nutzen:
https://fullstackmark.com/post/10/user-authentication-with-angular-and-asp-net-core

Im Gegensatz zum Beispiel nutze ich das .NetCore 2.0 Framework.

Wenn ich mich anmelde erhalte ich folgende Daten:

{
"id": "9559b83e-4421-4139-a3ce-28e6c28f33ec",
"auth_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJBZG1pbi1UYWxrLUlQIiwianRpIjoiOTBkZjEwYmYtZDNmOC00NGFlLTg2MzctNDlmOGU1YWMwNzU2IiwiaWF0IjoxNTA5MTg5MzExLCJyb2wiOiJhcGlfYWNjZXNzIiwiaWQiOiI5NTU5YjgzZS00NDIxLTQxMzktYTNjZS0yOGU2YzI4ZjMzZWMiLCJuYmYiOjE1MDkxODkzMTAsImV4cCI6MTUwOTE5NjUxMCwiaXNzIjoiVGlwV2ViIiwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDo1MDY5NC8ifQ.f7Y70kPpprjye93orkEJltxk37WvKxmOKPFUtBeKK80",
"expires_in": 7200
}

Die ID ist auch die selbe wie in der Tabelle "[AspNetUsers]".

Wenn ich dann die folgende Methode aufrufen will geht es nicht.

[HttpGet("userData")]
[Authorize]
public UserDataResources GetUserData() {}

Ich muss das Attribut [Authorize] heraus nehmen, dann wird die Methode aufgerufen.

Wenn ich in der Methode mir this.User anzeigen lassen, dann hat this.User.Identities den Wert 1 und bei this.User.Identities[0] sind fast alle Werte auf null.

In startup.cs:
public void ConfigureServices(IServiceCollection services){

services.AddAuthorization(options =>
{
options.AddPolicy("ApiUser", policy => policy.RequireClaim(Constants.Strings.JwtClaimIdentifiers.Rol, Constants.Strings.JwtClaims.ApiAccess));
});

var pwdSection = Configuration.GetSection("TipPasswordOptions");
services.AddIdentity<AppUser, AppRole>
(o =>
{
// configure identity options
o.Password.RequireDigit = pwdSection.GetValue<bool>("RequireDigit");
o.Password.RequireLowercase = pwdSection.GetValue<bool>("RequireLowercase");
o.Password.RequireUppercase = pwdSection.GetValue<bool>("RequireUppercase");
o.Password.RequireNonAlphanumeric = pwdSection.GetValue<bool>("RequireNonAlphanumeric");
o.Password.RequiredLength = pwdSection.GetValue<int>("RequiredLength");
})
.AddEntityFrameworkStores<TipWebDbContext>()
.AddDefaultTokenProviders();


}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseAuthentication();
}

Kann mir hier jemand helfen??

Danke im voraus für jeden Hinweis und Tipp.

Grüße Ingo
28.10.2017
ingo 122 1 6
3 Antworten
0
Mit ASP-NET Core 2.0 wurde die komplette Authorisierung refactored. .Net Core 1.1 Anwendungen mit Authorisierung / Authentifizierung laufen nicht mehr ohne Änderugnen. In der ASP.NET Core Dokumentation ist beschrieben, wie der Code geändert werden muss:

ASP.NET Core Documentation

Vielleicht hilft dir das ja weiter. Ich hätte da auch noch zwei aus meiner Sich ganz guter Links zum Thema:

Implementing simple token authentication in ASP.NET Core with OpenIddict | Kévin Chalet's blog
Two AuthorizationSchemes in ASP.NET Core 2 - Shawn Wildermuth

Viele Grüße
Klaus
29.10.2017
luedi 2,1k 1 9
0
Hallo Klaus,
danke für die Tipps.
Ich hatte mir das auch schon durch gelesen. Unter anderem ist mit auch ein Fehler aufgefallen, ich hatte dem http-Header den Token nicht übergeben.
Leider kappt es immer noch nicht.

Ich habe mein Projekt 211 KB mal bereit gelegt. Vielleicht hat jemand mal Lust den anzusehen un mir zu helfen. Wenn eine leere Datenbank vorhanden ist, dann wird ein Anwender automatisch angelegt. Name und Passwort stehen im Code.
HomeController Zeile 63 - 67.

Projekt...

Danke für im voraus für jede Hilfe.

Grüße Ingo
29.10.2017
ingo 122 1 6
ingo 122 1 6
0
Hallo NG,
Ich habe versucht die Authentifizierung wie von Klaus empfohlen
https://wildermuth.com/2017/08/19/Two-AuthorizationSchemes-in-ASP-NET-Core-2
umzusetzen. Leider bin ich auch hier auf die selben Probleme gestoßen
Ich habe mein Projekt noch einmal überarbeitet. Jetzt wird die Datenbank automatisch angelegt und ein User eingerichtet. Username und Passwort sind Admin.
Es muss noch in der appsettings.json der Connection string angepasst werden.
Mein Projekt

Ich bin leider am Ende mit meinem Wissen angekommen.
Bitte im Hilfe oder einen Tipp.

Grüße Ingo
30.10.2017
ingo 122 1 6

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH