Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Peter Bucher
Thema: ASP.NET Core 5.0 Azure AD Auth Template nutzt impliziten Flow
Am im Forum: Web-Technologien

Hi Abt

Ja, dann ist ja alles gut und die Standard Implementation ist OK. War ein Missverständnis meinerseits.
Danke für deine Hilfe!


Grüsse Peter

Thema: ASP.NET Core 5.0 Azure AD Auth Template nutzt impliziten Flow
Am im Forum: Web-Technologien

Offensichtlich benötigen ALLE flows TokenID. So ein Witz, ich war total auf dem falschen Pferd. Dann ist ja alles gut?!

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Hi Jungs

Links in Signaturen sollten in einem neuen Fenster / Tab aufgehen.
Müssen Poweruser wirklich so lange warten, bis sie den nächsten Beitrag schreiben dürfen? :-)

Kommt super gut, das Forum!

Thema: ASP.NET Core 5.0 Azure AD Auth Template nutzt impliziten Flow
Am im Forum: Web-Technologien

Hehe Abt, das steht bei mir genau so drin im Code. Neustes Template. Denke du hast das nicht ohne Token getestet, oder wie lief dein Test?
Nimm mal bei Azure die ID Token raus, die es für implizit benötitgt, dann kommt ne Meldung...

Grüsse Peter

Thema: ASP.NET Core 5.0 Azure AD Auth Template nutzt impliziten Flow
Am im Forum: Web-Technologien

Hi Abt

Danke, ich schaue mir das an. Frage mich nur, wieso das MS nicht standarmässig ins Template einbaut.


Gruss Peter

Thema: ASP.NET Core 5.0 Azure AD Auth Template nutzt impliziten Flow
Am im Forum: Web-Technologien

Hallo zusammen

Jetzt habe ich - auch wegen der Azure AD Auth - angefangen von ASP.NET MVC auf ASP.NET Core 5.0 zu migrieren.
Denn unter ASP.NET MVC konnte ich keine Authentifizierung ohne impliziten Flow, hinkriegen.

Wie ich festellen musste, nutzt Microsoft in seinem eigenen Template auch den implicit Flow.

Was soll mir das jetzt genau sagen?
Abt hier aus dem Forum meinte, das sei unsicher. Wieso macht MS das und es nicht gleich richtig?


Grüsse Peter

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hi Abt

Alles klar, mache ich.

--

Also hier meine Lösung für ASP.NET Core 5.0, um dotnet watch auch für Bundles zu aktivieren.

BuildBundlerMinifier installieren:
- https://www.nuget.org/packages/BuildBundlerMinifier/

Wenn dotnet watch genutzt wird, kann die Projektdatei wie folgt angepasst werden, damit dotnet watch neustartet,
dies tut der Bundler dann auch.
Dies ist auch bspw. für CSS oder für einzelne Dateien möglich.


<ItemGroup>
    <!-- extends watching group to include *.js files -->
    <Watch Include="**\*.js" Exclude="node_modules\**\*.js;$(DefaultExcludes)" />
</ItemGroup>

Viel Erfolg :-)


Grüsse Peter

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hi Abt

Ich kann nicht mehr editieren. Ist die Einstellung doch nicht korrekt bei "Experten"?

Nachtrag: Wenn das Kommando "dotnet bundle" nicht gefunden wird, fehlt wohl noch was
=> dotnet-bundle-not-working-in-net-core-mvc-application

Gruss Peter

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hi Abt

Das rennt tatsätchlich wie es soll. Die Einstellung die ich gesucht habe, war wirklich die URLs von ENV und launchBrowser. Vielen Dank!


    "MeinProjektName": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": false,
      "applicationUrl": "https://localhost:5001",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_URLS": "https://localhost:5001"
      }
    }

Und rufe

dotnet watch run --no-launch-profile

auf; es geht kein Fenster auf :-)

edit: Die Code Hervorhebung ist cool hier im Forum!

Grüsse

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hi Abt

Folgendes sollte gehen: Bundling And Minifying In ASP.NET Core Applications
Precompile => dotnet bundle watch (Steht ein wenig weiter unten im Artikel.


Grüsse Peter

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hmm Abt, vor dem Build ist nach dem Build oder?
D.h. bevor der Build startet, bzw. eben auch wenn er neustartet, würde es Sinn machen.

Es gibt also ausser gulp keine Möglichkeit, direkt live zu entwickeln out-of-the-box in 5.0. Wow.
Ich müsste mich übel täuschen; dachte das ging eine zeitlang in 3.1 problemlos.

Wie machst du denn das? Jedesmal manuell anstossen offenbar, oder mit gulp?
JS, CSS....?

Grüsse Peter

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hi Abt

Ja, wenn ich dotnet watch in der Konsole per .bat aufrufe, kommt ein Fenster. Muss also an was anderem liegen. Aber gut weiss ich jetzt, wie ich die URLs konfigurieren kann. Danke dir.

Wegen den Bundles: Ist es also so, dass das was ich in PreBuild aufnehme, ausgeführt wird, wenn dotnet watch am
rennen und dann eben neustarten ist. Weil er ja dann einen Rebuild macht, korrekt?

Sollte ja auch mit den dotnet Standard bundle Tools gehen. Dieses Weboptimizer ist ja neu jetzt.


Grüsse Peter

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hi Abt

Vielen vielen Dank! Wenn das klappt, erleichtert das schon einiges.
Mit ASP.NET Core 3.1 mit den gleichen launch.settings ging kein Fenster auf, darum dachte ich, es hätte keinen Zusammenhang. Denke aber es liegt an den dotnet.... Standardeinstellungen die sich mit 5.0 geändert haben.

Ich gucke mir das an und hoffe das klappt auch, wenn ich es von der Konsole aus starte.

Wie ist das eigentlich mit dotnet bundle start, wenn ich das als zweiten punkt in einer .bat file drin habe (nach einem dotnet watch start Aufruf), wird das ja nicht ausgeführt, gibt es da eine Möglichkeit?
Sodass die Bundles auch automatisch "gewatched" werden?
Mit 3.1 hat das eine Zeit lang funktioniert, mit dem nuget-Package - aber jetzt auch nicht mehr zuverlässig.
Ich starte halt gerne eine .bat file, wo ich dann mit CTR+C wieder beenden oder neu starten kann, wenns mal hängt und den Status sehe.

Habe nicht gerne VS immer im Debugmodus, sondern hänge die Instanz an, wenn ich debuggen möchte.

Grüsse Peter

Thema: Hello World! myCSharp auf .NET
Am im Forum: Ankündigungen

Hallo zusammen

Ist super geworden!
Könnte man den Button zum erstellen eines Themas sichtbarer machen, evtl. blau wie hier bei "Antwort erstellen"?
Ich habe den Button fast nicht gefunden :-/

Vielen Dank für euer Engangement!


Grüsse Peter

Thema: dotnet watch run öffnet http und https Fenster
Am im Forum: Web-Technologien

Hallo zusammen

Wenn ich ein neues ASP.NET 5 Projekt erstelle und dies per dotnet watch run starte, öffnet sich ein http :5000 und ein https:5001 Fenster. Ich möchte aber kein oder nur das https Fenster geöffnet haben.
Leider fand ich nicht wirklich passende Argumente und finde nicht, wo das konfiguriert werden kann.


watch : Started
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:5001


Mit ASP.NET Core 3.1 war das Verhalten noch anders.


Grüsse Peter

Thema: ASP.NET MVC Fehlerseite cryptischer Text
Am im Forum: Web-Technologien

Hallo witte

Zitat von witte
... das wird wohl eine binäre Datei sein. Vllt überträgst du ein Bild und hast den Mimetype nicht gesetzt.
Ähm - woher weisst du dass das eine Fehlermeldung sein soll?
Weil immer so ein Salat kommt, anstelle der Fehlermeldung. Und wenn ich debugge, sehe ich die Fehlermeldung oder im Razer im Designer. Und zwar egal auf welcher Url. Also muss die Ausgabe der Fehlerseite irgendwie durch eine Komponente kaputt gemacht worden sein.

Wo müsste man da ansetzen?


Grüsse

Thema: ASP.NET MVC Fehlerseite cryptischer Text
Am im Forum: Web-Technologien

Hallo zusammen

Seite einiger Zeit bekomme ich statt aussagekräftigen Fehlermeldungen folgendes Bild im Browser, wenn ein Fehler vorhanden ist. Schwierig, die Fehler so zu finden.

Mit was könnte das zusammenhängen?


Grüsse Peter

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hallo zusammen

Implicit Flow funktioniert. Wie ist es denn da bezüglich Security?
Es sei nicht für serverseitige Anwendungen gedacht, etc.

Für Policies / Claims in ASP.NET MVC (.NET Framework) könnte das hier nützlich sein:
- https://www.nuget.org/packages/Microsoft.Owin.Security.Authorization.Mvc/

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hallo Abt

Ja... das ist mir wirklich klar. Nur habe ich keine Zeit, das komplett selber zu entwickeln und auf das läuft es hinaus, falls es da keine Beispiele gibt.
In ASP.NET Core ist alles gekapselt, ganz anders. Wie soll mir das was bringen?

Jemand eine Idee?

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hi Papst

Danke für deine Info.
Woher hast du die Vorlage genommen für ASP.NET Core für den CodeFlow?
Nutzt du eben dieses Identity.Web Dings, das ganz neue, dass in Abts neustem Link mit Beispielen auch genutzt wird?

Klar komme ich da keinen Meter weiter.

@Abt
Dir war schon bewusst, dass es hier um ASP.NET MVC (NICHT Core) geht?
Ich frage mich jetzt einfach mal, ob das überhaupt geht.... hast du - oder hat jemand ein Beispiel dafür? Muss es doch geben. Kann man sich doch nicht aus den Fingern saugen.

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hi Abt

Im Code ein paar Beiträge weiter oben ist - wie beschrieben - bei:


string signedInUserID = context.AuthenticationTicket

...AuthenticationTicket null.

Was ist denn das für eine Url, die du mir geschrieben hast?
Das verwirrrt mich mehr, als das es mir hilft, um ehrlich zu sein.
Auch deine gezeigten Beispiele sind für ASP.NET Core und die genutzte Bibliothek scheint nur für ASP.NET Core zu sein?

Ich habe bei Azure gesehen, dass man eine Testapplikation generieren lassen kann.
Wäre ja alles schön un gut, nur geht das nur mit IMPCIT GRANT. Da frage ich mich schon, ob das CodeFlow überhaupt geht und warum es dafür keine Beispiele gibt? Ist nicht Microsoft typisch. Weisst du da mehr?

Siehe Bild.

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hallo Papst, Abt

Wenn ich auf .Code setze, springt er in die Authorisierungsmethode rein; Er kommt schon weiter und fragt nach Berechtigung des Profiles. Es ist dann aber context.AuthenticationTicket null.

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Zitat von Abt
Du kannst auch alles erst mal mit Hilfe von Postman versuchen hin zu bekommen, damit Du Dir sicher sein kannst, dass das AAD richtig konfiguriert ist - und Du gegen die richtigen Endpunkte arbeitest.
Keinen Plan was genau du damit meinst. Ich muss wohl nicht händisch Requests prüfen?
Code brauche ich ja nicht mehr als in etwa dem bestehenden Umfang. Schon verwirrend, diese Sache.
Zitat von Abt
Aktuelle Azure Samples sind zB hier, falls es Dir weiter hilft:
Chapter - Enable your Web app to sign-in users using the Microsoft Identity Platform
Woher hast du diese Url? Scheint für ASP.NET Core zu sein; sollte ja trotzdem anwendbar sein. Nur ist es wieder mal mit IMPLICIT GRANT. Das hatte ich ja schon am laufen, möchte ich aber nicht.
Die Beispiele bringen mich nicht weiter. Ich verstehe immer nur weniger.

Mal schauen, ob ich mit dem Tipp vom Papst ;-) weiterkomme...

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hallo Abt

Ja schon gehört. Ist mir aber alles nicht wirklich hilfreich, um ehrlich zu sein.
Folgend ist mein aktueller Code der Startup.cs. Ich habe ihn dem Projekt Template von VS angepasst. So wie ich das verstehe, soll das jetzt Code Auth Flow sein.

Es kommt aber immer noch die genau gleiche Meldung, dass er id_token, etc... für implicit aktiviert haben will.
Und in "AuthorizationCodeReceived" springt er auch nicht.
Wieso ist denn das so?

Der Fehler der immer noch kommt, ist: https://login.microsoftonline.com/error?code=700054


        public void Configuration(IAppBuilder app)
        {
            string clientId = WebConfigurationManager.AppSettings["ClientId"];
            string authority = "https://login.microsoftonline.com/" + WebConfigurationManager.AppSettings["Tenant"] + "/v2.0";
            string appKey = WebConfigurationManager.AppSettings["ClientSecret"];

            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

            app.UseCookieAuthentication(new CookieAuthenticationOptions());
            app.UseOpenIdConnectAuthentication(
                new OpenIdConnectAuthenticationOptions
                {
                    // Sets the ClientId, authority, RedirectUri as obtained from web.config
                    ClientId = clientId,
                    Authority = authority,
                    RedirectUri = WebConfigurationManager.AppSettings["RedirectUri"],
                    // PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it is using the home page
                    PostLogoutRedirectUri = WebConfigurationManager.AppSettings["RedirectUri"],
                    //Scope = OpenIdConnectScope.OpenIdProfile,
                    // ResponseType is set to request the id_token - which contains basic information about the signed-in user
                    //ResponseType = OpenIdConnectResponseType.IdToken,
                    // ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
                    // To only allow users from a single organizations, set ValidateIssuer to true and 'tenant' setting in web.config to the tenant name
                    // To allow users from only a list of specific organizations, set ValidateIssuer to true and use ValidIssuers parameter
                    TokenValidationParameters = new TokenValidationParameters()
                    {
                        ValidateIssuer = false // Simplification (see note below)
                    },
                    // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to OnAuthenticationFailed method
                    Notifications = new OpenIdConnectAuthenticationNotifications
                    {
                        AuthenticationFailed = OnAuthenticationFailed,
                        // If there is a code in the OpenID Connect response, redeem it for an access token and refresh token, and store those away.
                        AuthorizationCodeReceived = (context) =>
                        {
                            var code = context.Code;
                            ClientCredential credential = new ClientCredential(clientId, appKey);
                            string signedInUserID = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value;
                            AuthenticationContext authContext = new AuthenticationContext(authority, null);
                            AuthenticationResult result = authContext.AcquireTokenByAuthorizationCodeAsync(
                                code, new Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential, graphResourceId).Result;

                            return Task.FromResult(0);
                        }
                    }
                }
            );
        }

        private Task OnAuthenticationFailed(AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> arg)
        {
            throw new NotImplementedException();
        }


Grüsse

Thema: Welche Datenbank-Technologie? NoSQL oder nicht?
Am im Forum: Datentechnologien

Hallo JimStark

Das Entiyframework ist mit SQLite extrem eingeschränkt, sobald du das Schema ändern möchtest, ist vorbei. Du kannst nur Felder hinzufügen, aber nichts ändern.
Daher SQLServer - auch wegen der Performance wenns grösser wird.


Grüsse

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hi Abt

Das ist doch mal ein Wort. Dann richte ich mich an Authorization Flow, dankeschön! :-)


Grüsse

Thema: Wie kann ich zur Laufzeit neue Properties in ein Objekt hinzufügen?
Am im Forum: GUI: WPF und XAML

Ich glaube witte meint damit, dass es nicht mehr reine Polymorphie ist.

Thema: Wie kann ich zur Laufzeit neue Properties in ein Objekt hinzufügen?
Am im Forum: GUI: WPF und XAML

Hallo CombatKarl

dynamic oder Dictionary<string, object>. Ist aber meistens ein Zeichen, dass da was falsch angegangen wird. Nummeriert Variabeln, wieso? Nutze Arrays oder Listen.


Grüsse

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hallo Abt

So, jetzt bin ich einen Schritt weiter. Die API greift.
Darf ich ohne Probleme den implicitFlow verwenden, wo man die id_token in Azure aktivieren muss?

Siehe:
- https://ingogegenwarth.wordpress.com/2019/03/07/oauth-get-accesstoken/

Scheint ja für Webanwendungen zu sein, oder Mobileanwendungen. Aber da es ja eine externe Auth / Author ist, müsste das passen, oder?

Doch nicht:

Zitat
If you are developing a Web application that includes a backend, and consuming an API from its backend code, the implicit flow is also not a good fit. Other grants give you far more power. For example, the OAuth2 client credentials grant provides the ability to obtain tokens that reflect the permissions assigned to the application itself, as opposed to user delegations. This means the client has the ability to maintain programmatic access to resources even when a user is not actively engaged in a session, and so on. Not only that, but such grants give higher security guarantees. For instance, access tokens never transit through the user browser, they don't risk being saved in the browser history, and so on. The client application can also perform strong authentication when requesting a token.

=> https://docs.microsoft.com/en-gb/azure/active-directory/azuread-dev/v1-oauth2-client-creds-grant-flow

Oh jesses


Grüsse

Thema: Wie arbeite ich mit ASP.NET MVC 4.7.2, Office 365 AD und Rollen?
Am im Forum: Web-Technologien

Hi Abt

Zitat von Abt
Alle Callback-URLs (auch Redirect) müssen korrekt (auch mit zusätzlichem Slash) konfiguriert werden.
Sorry, das habe ich wohl übersehen. Ich schaue mal, ob der zusätzliche Slash da ist! :-)


Danke und Grüsse