Laden...
T
TirolerToni myCSharp.de - Member
Systemadministrator / Software Entwickler Tirol / Innsbruck Dabei seit 14.09.2011 12 Beiträge

Forenbeiträge von TirolerToni Ingesamt 12 Beiträge

02.05.2023 - 15:30 Uhr

Hallo!

Wäre es ein akzeptabler/brauchbarer Ansatz, wenn man die bisherigen Funktionen dieser ActionFilterAttribute einfach in eine statische Klasse schreibt und dann im Controller + in diesen Areas/Identiy/Pages/Account/XXXXX.cshtml.cs verwendet?

HomeController.cs:

        public IActionResult Index()
        {
            // #####################################################################################################################
            // ## EuCookie & CannonicalUrl & Sprachauswahl
            // #####################################################################################################################
            dz.EuCookieService.UseEuCookie(this.ViewData, this.Request);
            dz.CanonicalUrlService.UseCanonicalUrl(this.ViewData, this.Request, "/");
            dz.SprachauswahlService.UseSprachauswahl(this.ViewData, this.Request);
            // #####################################################################################################################

            return View();
        }

Areas/Identiy/Pages/Account/Login.cshtml.cs

		public async Task OnGetAsync(string returnUrl = null)
        {
            ...

            // #####################################################################################################################
            // ## EuCookie & CannonicalUrl & Sprachauswahl
            // #####################################################################################################################
            dz.EuCookieService.UseEuCookie(this.ViewData, this.Request);
            dz.CanonicalUrlService.UseCanonicalUrl(this.ViewData, this.Request, "/identity/account/login");
            dz.SprachauswahlService.UseSprachauswahl(this.ViewData, this.Request);
            // #####################################################################################################################
        }

Es scheint soweit auf jeden fall perfekt zu klappen. Ich bin mir nur nicht sicher ob ich hier wieder einen "Workaround" einschlage der nicht empfehlenswert ist...

Hier noch was beispielsweise mein UseCanonicalUrl macht:

public static class CanonicalUrlService
    {
        #region Methods
        public static void UseCanonicalUrl(ViewDataDictionary viewData, HttpRequest request, string subdirectory)
        {
            var host = request.Host.Value;
            var full = $"https://{host}{subdirectory}";
            var canonical = $"<link rel='canonical' href='{full}' />";
            viewData["CannonicalURL"] = canonical;
        }
        #endregion
    }

Lg Toni

27.04.2023 - 16:40 Uhr

Hallo!

Ich konnte in meiner bisherigen ASP.NET MVC .NET Framework Webanwendungmeinen AccountController mit einem ActionFilterAttribute ausstatten und/oder von einem BaseController erben lassen. (In diesen ActionFilterAttributen habe ich bisher bsp. CannonicalUrl, EuCookies und Spracheinstellungen usw. gesteuert).

AccountController.cs:

        //
        // GET: /Account/Login
        [AllowAnonymous]
        [CanonicalURL("/account/login")]
        [EuCookie]
        public ActionResult Login(string returnUrl)       
             ...

Ich konnte meiner neuen ASP.NET MVC CORE Webanwendung (mittels Gerüstelementen ) die Login, Register, ResetPassword Seiten hinzufügen und wie gewohnt anpassen aber mir fehlt der AccountController für meine bisher ActionFilterAttribute.

Kann mir hier jemand einen Tipp für einen Lösungsansatz geben?

Lg Toni

16.03.2023 - 08:38 Uhr

Hallo!

Du meintest, dass ich mich von SMTP verabschieden müsste aber mich irritiert es jetzt, dass der folgende Microsoft Artikel (vom 16.03.2023) die Verwendung von SMTP-Releaydienst wie SendGrid regelrecht empfiehlt:

Problembehandlung bei ausgehenden SMTP-Verbindungen in Azure

Empfohlene Methode zum Senden von E-Mails
Es wird empfohlen, authentifizierte SMTP-Relaydienste zu verwenden, um E-Mails von Azure-VMs oder von Azure App Service zu senden. (Diese Relaydienste stellen in der Regel eine Verbindung über den TCP-Port 587 her, unterstützen aber auch andere Ports.) Mithilfe dieser Dienste wird die Zuverlässigkeit der IP-Adresse und der Domäne bewahrt, um die Wahrscheinlichkeit zu minimieren, dass Ihre Nachrichten von externen Domänen abgelehnt oder im Spam-Ordner platziert werden. SendGrid ist ein solcher SMTP-Relaydienst, aber es gibt auch andere. Möglicherweise befindet sich auf Ihren lokalen Servern auch ein authentifizierter SMTP-Relaydienst.
Das Verwenden dieser Dienste für die E-Mail-Zustellung ist in Azure nicht eingeschränkt – unabhängig vom Abonnementtyp.

Wie passt das zusammen bzw. übersehe ich hier jetzt etwas?
Lg Toni

25.01.2023 - 23:13 Uhr

Hallo!

Den Lösungsansatz mit Microsoft Graph werde ich mir auf jeden Fall mal genauer anschauen. Vielen lieben Dank!

Jetzt hätte ich aber noch eine Frage was den Einsatz von so einem kostenlosen SMTP-Dienstleiter wie beispielsweise sendgrid.com angeht.
Die bieten/bewerben doch derzeit nach wie vor SMTP-Lösungen an. Sind diese auch sicher bzw. wäre das ein brauchbarerer Lösungsansatz für meine Anwender?

Lg Toni

06.11.2022 - 08:38 Uhr

Hallo Forum!

Ich habe eine Windows Forms Anwendung mit der ein Anwender E-Mail verschicken kann.

Ein Anwender kann hierfür seine SMTP Einstellungen (Benutzername, Kennwort, Hostname, Port, SSL ) entsprechend hinterlegen.
Die Anwendung verwende hierfür im Augenblick noch System.Net.Mail.SmtpClient was ich aber als nächstes auf das empfohlene MailKit.Net.Smtp.SmtpClient umstellen möchte.

Meine Frage bezieht sich jetzt auf einen Anwender der Office365 mit aktivierten Two-Factor-Authentication (2FA) verwenden möchte.

An der Stelle bin ich mir jetzt nicht sicher, ob eine 2FA Möglichkeit in meine Windows-Forms-Anwendung generell überhaupt rein gehört bzw. ob mir MailKit hier weiterhelfen wird oder ob hierfür die (beispielsweise) Office365 App-Passwörter (Manage app passwords for two-step verification) angedacht sind.

Meine Frage lautet also: Bin ich hier als Entwickler gefordert eine 2FA Lösung in meiner Anwendung zu schaffen und wird mir Mailkit hier weiterhelfen?

Lg Toni

18.11.2021 - 16:50 Uhr

Ich kenne eure IT nicht. Normalerweise hat eine interne IT in größeren Unternehmen immer ein selbst erstelltes Root Certificate, das für viele technische Dinge notwendig ist (Signierungen, Authentifizierungen...). Völliger Standard.
Dieses Zertifikat (bzw. den public Teil) wird auf den Firmen-Rechnern verteilt, sodass diese entsprechende Signaturen validieren können.
Die IT erstellt damit aber auch entsprechende TLS Zertifikate für internes HTTPS.

Danke für den Tipp!!

18.11.2021 - 16:10 Uhr

Hallo Abt!

Weil Fiddler ein Root Certificate Zertifikat erstellt und auf Deiner Maschine installiert.
Fiddler nimmt jedes Zetifikat an; liefert aber ein eigenes aus - ansonsten könnte Fiddler nicht den Traffic darstellen; nennt sich SSL Interception.
Dadurch funktioniert das natürlich in Chrome.
Das gleiche Verfahren verwendet jeder Firmenproxy.

Stimmt: Ich habe von Fiddler folgende Meldung erhalten: "Certficate Error" und [Ignore errors (unsafe) and proceed? YES]. Durch das bestätigen habe ich sozusagen einen Workaround geschaffen. Danke für den Tipp.

Mit WinAuth (den Namen gibt es nicht), wirst Du vermutlich Kerberbos meinen.

Wenn ich ein neues Visual Studio Projekt (MVC) erstelle, dann habe ich die Wahl zwischen "Einzelne Benutzerkonten" und "Windows-Authentifizierung".
Am IIS Webserver muss ich dafür wiederum unter im Menu Punkt: "Authentifizierung" die "Anonyme Authentifizierung" deaktivieren und die "Windows-Authentifizierung" aktivieren.
Das meint ich mit WinAuth.
(Wenn ich rechtsklicks auf IIS/Webprojekt/Authentifizierung/Anbieter... mache, dann steht hier auch noch: Negotiate + NTLM. Falls irgendwie interessant/relevant.)

Wenn Du ein selbst signiertes Zertifikat nimmst, dann geht das nur auf der Maschine, auf der Du das erstellst bzw. importierst

Dh damit kann ich kein Zertifikat selbst signieren und dann über Group-Policy von unserer IT verteilen lassen oder?

ausser Du erstellst es über das interne Root Certificate, das auf jeder Maschine installiert ist.

Das sagt mir jetzt im Augenblick noch nichts. Soll ich hier nach suchen?
Ist das die empfohlene Vorgehensweise wenn man für eine ASP.NET MVC Webanwendung mit Windows-Authentifizierung HTTPS ermöglichen möchte?

Lg

18.11.2021 - 15:21 Uhr

Hallo!

Ich habe leider schon unzählig viele Google Tutorial und Dokumentationen durchgewühlt aber leider bisher ohne Erfolg.
Ich kann es leider nur (wie folgt chaotisch) schildern. Vielleicht ist irgendwo ein Punkt dabei der meine Situation (oder meinen Denkfehler) beschreibt.

Vorab:
* Ich habe einge externe Webserver mit funktionierenden (altmodisch gekauften) HTTPS Zertifikate im Einsatz.
Alle Problemlos aber natürlich extern und anstelle von WinAuth natürlich Benutzerkonten.

Mein Problem hier jetzt betrifft internen Webserver mit aktivieren WinAuth.

Paar meiner Tests:
* In VS eine neue ASP.NET MVC Webanwendung mit WinAuth und aktivierten SSL erstellt & F5: Klappt sofort.
* Die Webanwendung auf internen IIS Webserver publiziert:
--> HTTP klappt sofort
--> HTTPS Warnmeldung vom Chrom Browser.
* Unzählige Versuche mit "Domänen Zertifikat" & "Selbstsigniertes Zertifikat" am IIS Webserver erstellt und am Rechner wiederum mittels mms/Zertifikate/Lokaler Computer/Vertrauenswürdige Stammzertifizierungsstelle importiert. Alle Schreibweise (mit DNS Suffix ohne DNS Suffix usw. probiert.
* (Ich hab es auch mit unseren externen WildCard-Zertifikat auf dem internen Webserver probiert. Das klappt sogar bis zu dem Zeitpunkt wo ich WinAuth aktiviere. Dann verlangt er nämlich ein Benutzername und Kennwort? Daher glaub ich mal, dass das nicht der richtige Weg ist...)
* Verrücktester Punkt: Wenn ich FIDDLER (Webdebugging Tool) gestartet habe, dann funktioniert es.
* Getestet hab ich alle Schritt auf und ab auf 4 verschiedenen internen Webserver. (Beim ersten lag es am veralteten TLS 1.0 / TLS 1.1...)
* Wenn ich die Fehlermeldung ignoriere, dann klappt es sofort und es kommt auch keine Benutzer/Kennwort Aufforderung.
Aber egal was ich bisher probierte ich bekomme die Meldung nicht weg.

Im Augenblick stehe ich hier (nach 2 Tagen NonStop Lösungssuche) komplett an.
Lg

18.11.2021 - 11:58 Uhr

Hallo!

Ich habe eine ASP.NET MVC Webanwendung auf einen internen Webserver mit Windows Authentifizerung im Einsatz.
Soweit läuft alles einwandfrei.

Jetzt möchte ich, dass diese Webanwendung mit HTTPS funktioniert.
Im Browser (zb Chrom) soll keine HTTPS Warnmeldung erscheinen.

Welches Serverzertifikat benötige ich hierfür?
* Selbstsigniertes Zertifikat
* Domänenzertifikat
* Zertfikat kaufen

Vielen Dank für eure Hilfe im Voraus.
Lg Toni

22.11.2017 - 17:51 Uhr

Hallo!

Ich habe eine Windows Forms Anwendung entwickelt.
Dazu möchte ich jetzt einen Windows Dienst entwickeln der mit der Windows Forms Anwendung kommunizieren und regelmäßige Aufgaben übernehmen soll.

Löst man sowas heutzutage noch mit WCF oder wir hier etwas anderes wie z.b. ASP.NET Web API empfohlen?

Vielen Dank für euren Tipp im Voraus.

14.09.2011 - 15:23 Uhr

Hallo Silverlight - Freunde 😃

Habe mir eine kleine Silverlight Applikation gebaut.
Eigentlich funktioniert das ganze bis jetzt schon mal ganz gut!

Aber mich quält eine Ungewissheit: Bin ich mit der Art und Weise wie ich das ganze aufbaue überhaupt auf den richtigen Weg?

Vielleicht kann mir jemand dazu einen Tipp geben bzw. sagen wie weit ich falsch liege …

Projekt Beschreibung:
Personen bekommen Adressen zugeteilt. Diese Adressen müssen dann von der jeweiligen Person kontaktiert werden. (Das wars schon ^^)

Somit haben wir (vereinfacht) 3 Tabellen: Mitarbeiter, Adressen, Zuteilungen

Hier meine Vorgehensweise:
Im Visual Studio 2010 habe ich mir dafür die folgenden Projekte angelegt:
• Data-Layer (C# ClassLibrary) ß Daten Zugriff etc.
• Model-Layer (C# ClassLibrary) ß Klassen (Vertikal Schicht)
• Service-Layer (C# ClassLibrary) ß Business Logik
• Silverlight-Anwendung ß Frontend
• Silverlihgt-Anwendung.Web ß Frontend’s WebServer oder so ^^

In meiner Model-Layer Klasse habe ich folgende Klassen definiert:
• Adresse.cs
• Person.cs
• Zuteilung.cs
(Hier schon meine 1. Ungewissheit: Ist es überhaupt richtig eine eigene Zuteilungs-Klasse zu erstellen?! Oder ist das in diesem Fall schon mal quatsch?!)

So schaut meine Personen Klasse aus:

 public class Person
    {
        public int PersonalID { get; set; }
        public string Anmeldename { get; set; }
        public string Nachname { get; set; }
        public string Vorname { get; set; }
        public string Anzeigename { get; set; }
        public string TelefonNummer { get; set; }
        public string FaxNummer { get; set; }
        public string Abteilung { get; set; }
        public string Mail { get; set; }
        public string Firma { get; set; }
        public string VollständigerName { get { return this.Vorname + " " + this.Nachname } }
    }

Hier habe ich schon meine 2. Ungewissheit/Problem: Die Eigenschaft „VollständigerName“ wird NICHT in meiner Silverlight-Anwendung auftauchen! (Soweit ich nachlesen konnte funktioniert das gleich wie bei Funktionen/Methoden einfach nicht! Wie bekommt man aber - wie in meinem Fall - trotzdem letzendlich so ein "errechnetes" Feld in das Grid der Silverlight-Anwendung?

Ansonsten bekommt mein Silverligt-Anwendungs-Grid die Daten wie folgt über die Service-Layer Klasse:

GetAdreessen()
    public class AdressenService
    {
        public List<Adresse> GetAdressen()
        {
            List<Adresse> adressen = new List<Adresse>();
            … Datenabruf …
            … Datenabruf …
            … Datenabruf …
            … Datenabruf …
            return adressen;
        }
    }

Hoffe mir kann jemand Helfen!

Vielen Dank für eure Hilfe im Voraus!!!