Ich versuche objektorientiertes JavaScript zu lernen. Ich arbeite mit einer einfachen Methode:
%Vor%Allerdings habe ich gelernt, dass es oft eine gute Idee ist, Variablen in Funktionen zu überführen, wenn man mit normalen Funktionen arbeitet, in Objekten jedoch erscheint das ein wenig klobig.
%Vor%Beide Methoden funktionieren. Was sind die Vor- und Nachteile der verschiedenen Ansätze, wenn man annimmt, dass user.log immer nur Eigenschaften innerhalb der Benutzerklasse benötigt.
Sie haben gerade erwähnt, dass Sie versuchen, OOP in JavaScript zu lernen, aber betrachten Sie die Protokollfunktion in Ihrem user
-Objekt, wenn es keine Benutzerinstanz, keine log
method eighther gibt. Das ist nicht das gleiche Konzept wie OO in C ++ oder C #. Meiner Meinung nach wird prototype
den oop am besten beschreiben, wie folgt:
auf diese Weise wird log
in keiner Instanz von users
vorkommen, sondern in __proto__
, was in jedem Fall eine Referenz von prototype
ist. Das bedeutet, wenn Sie Instanzen erstellen, teilen sie alle Funktionen wie C ++ oder C #. Schließlich solltest du niemals das zweite Sample in deinem Post verwenden, das sind keine OO-Dinge.
Wenn Sie möchten, dass log
immer die URL des Objekts ausgibt, dann würden Sie die URL des Objekts natürlich nicht als Parameter übergeben, da log
es selbst abrufen kann.
Wenn Sie verschiedene Eigenschaften des Objekts protokollieren möchten, würde ich vorschlagen, separate Routinen wie logUrl
und logBlah
für die einzelnen Fälle zu erstellen.
Wenn Sie möchten, dass log
einen beliebigen Wert ausgibt, müssen Sie natürlich den Wert übergeben.
Wenn es keine Protokollierung gibt, die sich auf das Objekt bezieht, dann können Sie einfach eine Protokollierungsroutine haben, die unabhängig von dem Objekt ist, das protokolliert, was auch immer Sie übergeben.
Tags und Links javascript
Ich habe eine .NET Web API mit einer Reihe von Endpunkten / Methoden, die eine Angular App aufruft. Ich möchte jetzt das Login-System gegen unser Active Directory implementieren und mich fragen, was meine Möglichkeiten sind.
Früher war es ganz einfach: Windows- oder Formularauthentifizierung und dann nur eine einfache Konfiguration in der Datei web.config und möglicherweise ein benutzerdefinierter Anbieter. Aber jetzt scheint es viel mehr Optionen mit OWIN, OAuth, Token-basierte Authentifizierung, etc. zu geben.
Wo fange ich an? Ich habe ein Formular mit Benutzername, Passwort und einem Login-Button in der Angular App, und ich habe das Active Directory im Backend. Was soll passieren, nachdem der Benutzer die Login-Taste gedrückt hat? Jede Richtung würde helfen.
Danke.
Nun, es hängt davon ab, was Sie wirklich brauchen.
Wenn Sie nur AD-Benutzer authentifizieren möchten, können Sie versuchen, sich in ihrem Namen in AD zu authentifizieren, und im Erfolgsfall geben Sie entweder einen Token oder einen Authentifizierungscookie zurück.
Aber ich denke nicht, dass es eine gute Idee ist, Benutzer dazu zu bringen, ihr Domänenkennwort zu verwenden, es sei denn, Sie verfügen über eine Zwei-Faktor-Authentifizierung.
Es ist besser, das AD-Schema mit zusätzlichen Daten für die Authentifizierung durch Ihren Dienst zu erweitern oder sogar einen eigenständigen Authentifizierungsserver mit zugehörigen Domänenbenutzerinformationen zu verwenden. Schauen Sie, wie es im SQL-Server gemacht wird (aber in umgekehrter Richtung): Sie müssen den internen Benutzer definieren, der der Domänenanmeldung entspricht. Dieser Ansatz ermöglicht es Ihnen, Benutzer zu haben, die nicht zu AD gehören, manchmal kann dies für das Outsourcing von Aufgaben wichtig sein.
Sehen Sie sich IdentityServer
an