Modell, Ansicht, Controller
Namespaces: System.Web.*, System.Web.Mvc, System.Web.Mvc.*
URL: Basis/Controller/Aktion/Parameter
APP_Start -Konfigrurationen wie: Bundle, Filter, Routing
Controller:
Controller/ControllerBase -> ActionResult
Eigenschaften: validiert, viewbag, Benutzer, Sitzung, Server, Anforderung, Antwort, httpcontext, ControllerContext
Methoden: Validate, ActionResults
Controller zum Anzeigen von Daten: * Viewbag, ViewData, TempData * Modellinstanz in actionResult, übergeben als Ansicht () Parameter, in view @model app.models.person angegeben, in Rest der Seite verwenden wir Modell.Propertiest/Methoden
Ansichten:
*.cshtml, Razor Syntax, @ & @ {...}
@Helper, @Model, @section name {...}
Eigenschaften: HTML, AJAX, Viewbag, ViewContext, Sitzung, Benutzer, Kontext, Anforderung, Antwort, Server, Cache, Layout
Methoden: Renderbody (), Rendersection (), RenderPage (), @styles.render ("Bunde URL"), @scripts.render ("Bunde URL")
htmlattributes in @html/ajax helpers ist ein anonymer Objekt wie: new {id = "user"}
Controller- und Aktionsattribute : degitanonyme, autorize, httpget/delete/head/option/patch/post/put, Nicht -Handlung, validiereantiForgerytoken, Route, Route
Aktionen:
[Httpget/post/put/delete] Attribute zur Angabe der Methode
Ergebnisse: Redirect, Partial, JSON, JavaScript, Datei, Inhalt, Ansicht, leer, httpstatuscode
Aktionen können andere Typen als actionResult wie String zurückgeben.
Aktionsparameter übergeben als:
Helfer:
HTML:
Methoden: Aktion, ActionLink, Routelink, Beginnform, Endform, AntiForgeryToken, Anzeige, Beschriftung, Eingabebezogene Methoden, validierungsbezogene Methoden
Beispielformular:
@using (Html.BeginForm("action","controller", FormMethod.Post))
{
@Html.TextBox("tb1")
<button type="submit"/>
}
Ajax:
Methoden: ActionLink, Routelink, beginform
Beginform in ajax ähnelt der HTML -Variation mit Zugabe des Ajaxoptions -Objektparameters.
Ajaxoptions bietet zusätzliche Optionen wie Element zum Aktualisieren und Rückruffunktionen.
Sitzung:
Controller & View -Eigenschaft anzeigen, nützlich für die Sitzungsverwaltung.
Browser erhält ASP.NET_SessionID Session Cookie.
Kann als indizierter Typ zugegriffen werden und nützliche Sitzungsinformationen in Wert speichert.
Eigenschaften und Methoden konzentrieren sich auf die Sitzung und die Sammlung von Schlüssel-/Wertpaaren.
Formen:
Formulare können in einfachem HTML geschrieben werden:
<form method="post" action="/Home/NameAge">
<input type="text" name="name" />
<input type="number" name="age" />
<input type="submit"/>
</form>
Mit der Aktionsmethode, die es aussieht wie:
[HttpPost]
public ActionResult NameAge(string name, int age)
{
ViewBag.Name = name;
ViewBag.Age = age;
return View();
}
Benutzerdefinierte Typen (Buch, Person, ...) können als Aktionsparameter verwendet werden. In diesem Fall sollten Eingabennamenattribute den Namen der Typeigenschaften übereinstimmen.
Im Fall, dass Multiplikationsaktionsparameter vorhanden sind, sollte das Eingabenname -Attribut mit dem Format übereinstimmen: Parameter.Property (Person1.Name).
Geben Sie an, welche Eingabelementwerte für Parameter gebannt werden sollen: public actionResult Index ([bind (include = "id, name")] Person) {...}
@Html.display/label/editorfor (m => m.age), um Datenbindung zu machen.
Datenannotationsattribute für Modellbedingungen.
Server -Seiten -Validierung: Ansicht: @html.labelform (m => m.firstname) @html.editorfor (m => m.firstname) @html.validationMessagefor (m => m.firstname) Controller: öffentlicher ActionResult Index () => view (); [Httppost] public actionResult Index (Person Guy) {if (modelState.isvalid) {return redirect ("Okview"); } return View (Guy); }
Datei herunterladen:
Datei -Upload:
HTTPPOSTEDFILEBASE & ITS -abgeleitete Typen werden als Aktionsmethodenparameter verwendet, wenn wir Dateien mithilfe von Formularen hochladen.
Ansicht HTML.BeginForm-Methode nimmt zusätzlichen Parameter an: new {engType = "MultiPart/Form-Data"}
In Aktion rufen wir Datei auf.
Die Servereigenschaft kann verwendet werden, um lokale auf globale Pfade zuzuordnen.
Grundstruktur:
App_start hat identityconfig.cs & startup.auth.cs Dateien
Neue Common Namespaces: Microsoft.aspnet.Identity, Microsoft.aspnet.Identity*, Microsoft.owin, Microsoft.owin.security, Microsoft.owin.security*, System.security.Claims
Benutzereigenschaft in Controller und Ansicht kann verwendet werden, um Benutzerdaten zu erhalten. Hauptmitglieder sind Identität & Isinrole (String -Name).
Request.isauthenticated In Ansicht, um zu überprüfen, ob der Benutzer authentifiziert ist.
Controller haben einen AccountController für Anmeldungen/Anmeldevorgänge.
Models hat AccountViewModels & IdentityModels.
Häufig verwendete Basistypen: IdentityUser, IdentityDBContext, UserManager, SigninManager
Gemeinsame Typen:
IdentityUser, IdentityDBContext, UserManager, SignInManager, IauThenticationManager sind Typen, die üblicherweise in der Kontoverwaltung verwendet werden. Sie können vererbt und erweitert werden.
IdentityUser enthält Benutzerkontoinformationen wie Benutzername und E -Mail -Passwort -Hash.
IdentityDbContext ist der Kontext der EntityFramework -Datenbank, der zum Speichern von Benutzerinformationen verwendet wird.
UserManager kann andere benutzerbezogene Operationen erstellen, suchen und ausführen.
SigninManager kann sich in der Sitzung in der Sitzung anmelden, oder wenn sich das Kontrollkästchen für mich erinnern , wird auf persistente Weise überprüft.
IAuthenticationManager kann Benutzer anmelden.
Datenbank:
Die Testdatenbank befindet sich im Ordner app_data, *.MDF -Datei. Die Verbindungszeichenfolge befindet sich in web.config und wird von ApplicationDBContext verwendet.
Die Datenbank besteht aus nächsten Tabellen: Benutzer, Rollen, Benutzerklima, UserLogins, Userroles.
OAuth2.0 & OpenID Connect:
Nachdem sie eine Client -ID und das Geheimnis erhalten haben, müssen sie in app_start> startup.auth.cs hinzugefügt werden
In MVC wird dieser Anmeldetyp als "externe" Anmeldung bezeichnet.
Rollen & Ansprüche:
[Autorize] Attribut wird verwendet, um nur authentifizierte Benutzer in Controllern/Aktionen zu ermöglichen.
[Donlanonymous] überschreibt das.
IdentityUserClaim & IdentityUserserrole werden üblicherweise verwendet.
ApplicationUser/IdentityUser hat Rollen und Ansprüche von Eigenschaften.
Die Eigenschaft von UserManager kann verwendet werden, um Ansprüche/Rollen für einen bestimmten Benutzer zu verwalten.
IdentityDBContext/ApplicationDBContext hat eine Rollentabelle.
Rolemanager ist für Rollen, was UserManager für Benutzer ist.
[Autorize (user = "...", roles = "...")] Attributparameter können verwendet werden, um den Zugriff auf den Controller/den Aktion weiter einzuschränken.
Aufbauend auf MVC, um Funktionen zu bieten, die für die erholsame Serviceentwicklung erforderlich sind.
App_start verfügt über webapiconfig.cs, die die API -Konfiguration und das API -Routing übernehmen, nicht von RouteConfig.cs durchgeführt
Apicontroller wird vom Typ Application Controller geerbt.
BaseURL/Help bietet generierte API -Dokumente.
Häufig verwendete Tools zum Testen sind Postman & Fiddler.
Aktionen:
Aktionsmethodennamen stimmen mit der HTTP -Methode überein, die zum Zugriff auf sie verwendet wird.
GET/POST/PUT/PUT/LELETE API/Controller
Aktionsrückgabetypen können Zeichenfolge, int, iEnumerable <t> usw. oder so weiter oder so von IHttpactionResult sein, wie OK (), NotFound (), ...
Die obere Aktionsmethode der Routenattribut kann eine benutzerdefinierte Route angeben, um darauf zuzugreifen.
[From Body] & [Fromuri] kann in Aktionsmethodenparametern verwendet werden, um deren Herkunft anzugeben.
Help Seite (/Hilfe) enthält API -Routen und ihre Beschreibungen in Bezug auf die Kontoverwaltung. Zum Beispiel enthält API/Konto/Register Informationen wie die verwendete HTTP -Methode und die Parameter.
Registrieren:
/Hilfe API/Konto/Register erläutert, wie das Konto erstellt wird. In Postman können wir nach Anfrage an diesen Endpunkt mit den erforderlichen Daten in Körper als X-WWW-Form-Urscoded oder RAW JSON gestellt werden. Wenn wir Antwort erhalten 200 OK, wird das Konto erstellt
Melden Sie sich an / Get Token:
Dies ist nicht auf Hilfeseite dokumentiert. Wir erhalten Token von /Token Route. Postanforderung mit Body X-Www-Form-Urlencoded enthalten: Grant_type: Passwort, Benutzername: E-Mail, Passwort: Passwort.
Die Antwort ist im Körper, es enthält JSON, wir benötigen Access_Token -Wert, um Anforderungen an geschützte Ressourcen zu stellen.
Holen Sie sich eine geschützte Ressource:
Das Erhalten von Ressourcen aus Aktionen oder Controllern, die das Attribut [autorisieren] haben, sind Zugriffsstoken erforderlich.
Wir stellen Get -Anfragen nach API/Werten mit Autorisierungsheader mit Wert: "Bearer Access_Token_Value" durchführen.
Externe Auth / OAuth2.0 & OIDC: