Laden...
M
Maliko
myCSharp.de - Member
50
Themen
117
Beiträge
Letzte Aktivität
vor 8 Monaten
Dabei seit
19.02.2012
Beruf
Fachinformatiker Anwendungsentwicklung
Erstellt vor 2 Jahren

Moin,

ich bin inzwischen relativ lange aus C# raus. Das letzte mal dass ich aktive C#-Entwicklung betrieben habe (abgesehen von ein wenig ASPxWebforms, was aber auch alte Technologie ist) war .net 4.5 aktuell gewesen (bin 2015 zu PHP gewechselt und inzwischen hauptsächlich im Java und Delphi-Umfeld unterwegs). Von daher bin ich definitiv nicht mehr auf dem Laufenden was aktuelle Technologien angeht. Ich wollte jetzt mal ein neues Projekt anfangen und dieses Modular aufbauen. Früher hat man für sowas dann auf MAF bzw. MEF zurückgegriffen. Wie sieht es heute aus? Was verwendet man heute für Modulare Programmierung unter WPF (werde ich auch das erste mal dann benutzen).

Und wo ich gerade schon mal hier bin, wie sieht es mit OR-Mappern aus? Ist das Entity Framework immer noch State of the Art oder gibt es dafür auch bereits einen Nachfolger, der inzwischen genutzt wird?

Würde mich freuen wenn ihr mir da ein paar kleine Tipps geben könntet, was heutzutage unter .Net 6/7 genutzt wird und modulare Anwendungen mit Datenbankanbindung umzusetzen (als Datenbank wird PostgreSQL genutzt).

Vielen Dank schon mal im Voraus.

Viele Grüße
Maliko

Erstellt vor 2 Jahren

Jup. Das ist uns hier im Büro auch gerade aufgefallen. Wir lassens also einfach sein und melden den Benutzer einfach nur bei uns ab.

Erstellt vor 2 Jahren

Ja, das sieht man sofort anhand von HttpContext.Current.GetOwinContext() - verursacht innerliche Schmerzen 😉

Ich würde wirklich gerne das Ding neu machen. Doch jedes mal wenn ich versuche das meinem Vorgesetzen zu erklären, heißt es immer, da haben wir keine Zeit für, machen wir nicht.

In der ASP.NET Core Pipeline würde man das in den Notification Handlern beim RedirectProvider konfigurieren; wie das beim uralten Owin Zeug geht weiß ich nicht; aber hast wenigstens ne Idee nach was Du suchen musst.

Uff. Ich schau mal ob ich da was entsprechendes Finde. Habs mit dem Login ja auch hinbekommen.

PS: damit loggt sich der User jedoch nur beim Anbieter aus, nicht bei euch in der App (by design, weil Token nur zeitlich ablaufen und nie "abgemeldet" werden können).

Das ist mir bewusst. Der Login von unserer Seite aus (sprich killen der Session und ähnliches) ist bereits fertig und funktioniert auch. Ich kann nur momentan den Login nicht an den Anbieter weiterleiten, der ja denke ich auch gerne wissen möchte, dass der User sich ausgeloggt hat.

Erstellt vor 2 Jahren

Huhu,

ich hab da ein kleines Problem. Und zwar bin ich gerade dabei von einer unserer Seiten den Login auf OIDC umzustellen. Dafür habe ich mich an folgendes Tutorial gehalten:

Tutorial: Erstellen einer ASP.NET-Web-App, die Microsoft Identity Platform für die Authentifizierung verwendet - Microsoft Entra

Ich habe die Credentials an den Keycloakserver von unserem Anbieter angepasst und der Login funktioniert auch einwandfrei, jedoch der Logout funktioniert dann nicht mehr. Sobald ich den Logoutbefehl sende, bekomme ich folgende Fehlermeldung:

Fehlermeldung:
Es ist ein Fehler aufgetreten
Fehlender Parameter: id_token_hint

Diese Fehlermeldung steht dann direkt auf der Seite vom Anbieter wo der Logout stattfinden soll. Ich kann damit leider überhaupt nix anfangen was das überhaupt für ein Parameter ist den er da haben will, geschweige denn wie man ihn übergibt. Hier noch der Logoutcode den ich verwende:


HttpContext.Current.GetOwinContext().Authentication.SignOut(
    OpenIdConnectAuthenticationDefaults.AuthenticationType,
    CookieAuthenticationDefaults.AuthenticationType);

Und hier vorsichtshalber auch der Login-Code (der Problemlos funktioniert):


ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

HttpContext.Current.GetOwinContext().Authentication.Challenge(
    new AuthenticationProperties { RedirectUri = "http://localhost:44361/Pages/SSOLogin.aspx" },
        OpenIdConnectAuthenticationDefaults.AuthenticationType);

Könnt ihr mir da vielleicht weiterhelfen? Oder liegt der Fehler vielleicht gar nicht an meinem Code sondern auf der Seite des Anbieters?

Vielen Dank schon einmal im Voraus.

Viele Grüße
Maliko

PS: Unsere Seite basiert auf WebForms nicht auf ASPC.Net Core MVC.

Erstellt vor 2 Jahren

Moin,

ich bin was C# angeht von den Kenntnissen leider sehr sehr veraltet, da ich seit 2014 fast gar nicht mehr mit C# (nur noch ein bisschen ASPX) arbeite und auch vorher nur WinForms gemacht habe. Das Thema WPF ist für mich ein absolutes Buch mit 7 Siegeln und das würde ich gerne einmal ändern.

Daher bin ich auf der Suche nach einem guten Buch / Kurs / Tutorial mit welchem ich WPF von Grund auf lernen kann. Was ich bereits gefunden habe sind einige Kapitel im C#-Buch von Rheinwerk, doch die kostenlose Variante ist auf dem Stand von Visual Studio 2012 und von daher gibt es mit Sicherheit aktuelleres. Die Aktuelle Ausgabe des Buches möchte ich mir bei dem Preis 50 Euro aber auch nicht kaufen, wenn es vielleicht bessere Werke zu dem Thema gibt (die idealerweise auch etwas weniger kosten).

Daher wollte ich mal fragen, ob jemand von euch für mich nen Tipp hat, was ich mir da mal zulegen sollte. Wichtig ist mir dass wenn es ein Buch ist, dass es ein EBook ist (idealerweise sogar wie die Rheinwerk-Onlinebücher im HTML Format), so dass ich bequem auch mal nach Schlagworten suchen kann. Am liebsten wäre mir aber tatsächlich ein Videokurs (Linkedin-Learning hat leider keine für WPF, wenn ich WPF eingebe, bekomme ich immer nur irgendwelche Was ist neu Videos angezeigt).

Natürlich muss das ganze nicht kostenlos sein, allerdings bin ich auch nicht bereit mehr als 50 - 60 Euro auszugeben, da ich das für mich selbst mache und das ganze so aus privater Tasche selbst zahlen muss.

Vielen Dank schon einmal im Voraus.

Viele Grüße
Maliko

Erstellt vor 2 Jahren

Das erste mal C# ist bei mir inzwischen auch 10 Jahre her (damals in der Berufsschule) und es war dann bis 2014 auch meine Primäre Programmiersprache. Danach bin ich dann ins PHP-Umfeld gewechselt und arbeite jetzt seit 3 Jahren wieder in sehr kleinem Rahmen mit C# (um genau zu sein das alte ASPX). Meine Primäre Programmiersprache ist inzwischen aber Delphi, da dies die Programmiersprache ist, in welcher bei uns im Unternehmen hauptsächlich gearbeitet wird.

Erstellt vor 3 Jahren

Es war in der Tat recht einfach. Der größte Aufwand insgesamt war das Kopieren der Sourcen aus dem alten in das neue Projekt. Anschließend musste ich nur noch ein paar kleine Änderungen vornehmen, da das Settings-Konzept aus .Net-Framework in .NET nicht existiert (Settings.Default). Aber ansonsten war es überhaupt kein Problem. War halt pure Fleißarbeit (hätte meines erachtens sogar bis auf die paar Anpassungen im Code selbst sogar ein Praktikant hinbekommen müssen).

Erstellt vor 3 Jahren

Ah. Das erklärt natürlich einiges. Na dann versuche ich mal das ganze zu migrieren.

Erstellt vor 3 Jahren

Huhu,

ich hab da ein kleines Problem. Und zwar habe ich ein Projekt welches noch das .Net-Framework 4.7.2 verwendet. Jetzt benötige ich aber eine Funktion die es erst ab .Net 5 gibt. Daher habe ich mir jetzt die aktuellste Version des .Net-Frameworks geholt und wollte in den Projekteinstellungen das Upgrade vornehmen (Es gibt keine Nuget-Pakete). Allerdings steht mir in der Auswahl nur maximal 4.8 zur Verfügung. Wenn ich allerdings ein neues Projekt erstelle, kann ich 6.0 problemlos auswählen.

Kann mir vielleicht irgendjemand sagen, wie ich das Projekt upgegradet bekomme, ohne dass ich das Projekt wegschmeißen muss? Es handelt sich um ein WinForms-Projekt (ich hasse dieses XML-Geschreibsel von WPF und mags bei UI lieber klickibunti).

Erstellt vor 3 Jahren

Deine Lösung hätte mir in diesem Fall nix gebracht, da sich die DataSources ja in den ASPX-Dateien befunden haben. Im Code-Behind mache ich es genauso wie du auch gesagt hast. Da erstelle ich direkt eine Connection. Nur funktioniert die halt nicht im "Frondend". Da muss man mit der Factory arbeiten (zumindest wenn ich das jetzt richtig verstanden habe). Und das eintragen der Factory in der web.config hat ja auch die Lösung gebracht. Jetzt läuft das System fast einwandfrei. Ich muss lediglich noch ein paar letzte Querys umschreiben, welche mit Postgresql nicht kompatibel sind (sprich aus getdate() current_date machen und sowas).

EDIT: Falls übrigens sonst noch mal jemand über das Problem stolpert. Folgendes Snippet muss in die web.config:


<system.data>
  <DbProviderFactories>
    <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>
  </DbProviderFactories>
</system.data>

Quelle: Installation | Npgsql Documentation

10 von 117 Beiträgen