Modèle, vue, contrôleur
Espaces de noms: System.Web. *, System.web.mvc, System.web.mvc. *
URL: base / contrôleur / action / paramètres
App_start Configrurations telles que: bundle, filtre, routage
Contrôleurs:
Contrôleur / ControllerBase -> ActionResult
Propriétés: validateRequest, Viewbag, utilisateur, session, serveur, demande, réponse, httpcontext, ControtreConText
Méthodes: Valider, ActionResults
Contrôleur pour afficher les données de passage: * Viewbag, ViewData, tempdata * Instance de modèle créée dans ActionResult, passé en tant que paramètre View (), dans la vue @model app.models.person spécifié, dans le reste de la page, nous utilisons le modèle.propernest / méthodes
Vues:
* .cshtml, syntaxe de rasoir, @ & @ {...}
@helper, @Model, @section Nom {...}
Propriétés: HTML, AJAX, Viewbag, ViewContext, Session, utilisateur, contexte, demande, réponse, serveur, cache, mise en page
Méthodes: RenderBody (), Rendersection (), RenderPage (), @ Styles.Render ("Bunde URL"), @ scripts.render ("Bunde URL")
htmlattributes dans @ html / ajax Les aides est un objet anonyme, comme: new {id = "user"}
Contrôleur et attributs d'action : AllowAnonymous, Authoriser, httpget / delete / head / options / patch / post / put, non-action, validateAtiforgeryToken, itinéraire
Actes:
[Httpget / post / put / delete] Attributs pour spécifier la méthode
Résultats: Redirection, partiel, JSON, JavaScript, fichier, contenu, vue, vide, httpStatuscode
Les actions peuvent renvoyer des types autres que ActionResult, comme String.
Les paramètres d'action sont passés comme:
Aiders:
HTML:
Méthodes: Action, ActionLink, RouteLink, Beginform, Endform, AniforgeryToken, affichage, étiquette, méthodes liées à l'entrée, méthodes liées à la validation
Exemple de formulaire:
@using (Html.BeginForm("action","controller", FormMethod.Post))
{
@Html.TextBox("tb1")
<button type="submit"/>
}
Ajax:
Méthodes: ActionLink, RouteLink, Beginform
Beginform dans Ajax est similaire à la variation HTML, avec l'ajout du paramètre objet AjaxOptions.
AjaxOptions fournit des options supplémentaires telles que les fonctions d'élément pour mettre à jour et rappeler.
Session:
Contrôleur et propriété Afficher, utile pour la gestion de session.
Le navigateur obtient un cookie de session ASP.net_sessionid.
Peut être accessible en tant que type indexé, stockant des informations de session utiles en valeur.
Les propriétés et les méthodes sont axées sur la session et c'est la collecte de paires de clés / valeur.
Formes:
Les formulaires peuvent être écrits en html ordinaire:
<form method="post" action="/Home/NameAge">
<input type="text" name="name" />
<input type="number" name="age" />
<input type="submit"/>
</form>
Avec une méthode d'action qui le mène à ressembler:
[HttpPost]
public ActionResult NameAge(string name, int age)
{
ViewBag.Name = name;
ViewBag.Age = age;
return View();
}
Les types personnalisés (livre, personne, ...) peuvent être utilisés comme paramètres d'action dans ce cas, les attributs de nom d'entrée doivent correspondre au nom des propriétés de type.
Dans le cas où il y a des paramètres d'action multipliés, l'attribut de nom d'entrée doit correspondre au format: paramètre.property (personne1.name)
Spécifiez quelles valeurs d'élément d'entrée à avoir été réunies sur le paramètre: index d'action du public ([bind (include = "id, name")] personne) {...}
@ Html.display / label / editorfor (m => M.Age) pour faire la liaison des données.
Attributs d'annotation des données pour les conditions du modèle.
Validation côté serveur: View: @ html.Labelfor (m => m.firstname) @ html.editorfor (m => M.FirstName) @ html.validationMessageFor (m => m.firstName) Controller: public ActionResult index () => View (); [HTTPPOST] Index d'action Public Action (Person Guy) {if (ModelState.Isvalid) {return redirect ("okView"); } Return View (Guy); }
Téléchargement de fichiers:
Téléchargement de fichiers:
HTTPPOSTEDFILEBASE et ses types dérivés sont utilisés comme paramètres de méthode d'action lorsque nous téléchargeons des fichiers à l'aide de formulaires.
Afficher la méthode html.beginform prend un paramètre supplémentaire: new {enctype = "multipart / form-data"}
En action, nous appelons file.saveas (@ "path") pour enregistrer le fichier,
La propriété du serveur peut être utilisée pour cartographier les chemins locaux vers mondiaux.
Structure de base:
App_Start a des fichiers IdentityConfig.cs & startup.auth.cs
Nouveaux espaces de noms communs: Microsoft.aspnet.identity, Microsoft.aspnet.identity *, Microsoft.owin, Microsoft.owin.Security, Microsoft.owin.Security *, System.Security.Claims
Les propriétés utilisateur dans Controller & View peuvent être utilisées pour obtenir des données utilisateur. Les principaux membres sont l'identité et l'isinrole (nom de chaîne).
Request.isauthenticated en vue pour vérifier si l'utilisateur est authentifié.
Les contrôleurs ont AccountController, pour les opérations de connexion / d'inscription.
Models a AccountViewModels & IdentityModels.
Types de base couramment utilisés: IdentityUser, IdentityDBContext, Usermanager, SigninManager
Types courants:
IdentityUser, identitydbcontext, usermanager, signinManager, iAuthenticationManager sont des types couramment utilisés dans la gestion des comptes. Ils peuvent être hérités et élargis.
IdentityUser contient des informations sur le compte d'utilisateur, comme le nom d'utilisateur, le hachage de mot de passe par e-mail.
IdentityDBContext est le contexte de base de données EntityFramework utilisé pour stocker les informations de l'utilisateur.
UserManager peut créer, rechercher et effectuer d'autres opérations liées aux utilisateurs.
SignInManager peut se connecter à l'utilisateur, en session ou si vous n'oubliez pas de moi , la case à cocher est cochée, de manière persistante.
IAuthenticationManager peut déconnecter les utilisateurs.
Base de données:
La base de données de test est dans le dossier APP_DATA, * .mdf Fichier. La chaîne de connexion est dans web.config, et elle est utilisée par ApplicationDBContext.
La base de données se compose de tables suivantes: utilisateurs, rôles, utilisateurs, userlogins, userroles.
OAuth2.0 & OpenID Connect:
Après avoir obtenu l'ID du client et le secret, ils doivent être ajoutés dans App_Start> startup.auth.cs
Dans MVC, ce type de connexion est appelé connexion "externe".
Rôles et affirmations:
L'attribut [Authorize] est utilisé pour autoriser uniquement les utilisateurs authentifiés dans les contrôleurs / actions.
[Perteanonymous] l'emporte sur.
IdentityUsercclum et IdentityUserrole sont couramment utilisés.
ApplicationUser / IdentityUser a des rôles et réclamations de propriétés.
La propriété UserManager peut être utilisée pour gérer les réclamations / rôles pour un utilisateur spécifique.
IdentityDBContext / ApplicationDBContext a des rôles.
RoleManager est destiné aux rôles, ce que Usermanager est pour les utilisateurs.
[Autoriser (utilisateur = "...", rôles = "...")] Les paramètres d'attribut peuvent être utilisés pour compléter le contrôleur / l'accès à l'action de contrainte.
Construit au-dessus de MVC pour fournir des fonctionnalités nécessaires au développement de services RESTful.
App_start a webapiconfig.cs qui gère la configuration de l'API et le routage de l'API, non fait par routeConfig.cs
APIController est hérité de type par les contrôleurs d'application.
BUSURL / AIDE fournit des documents API générés.
Les outils couramment utilisés sont Postman & Fiddler.
Actes:
Les noms de méthodes d'action correspondent à la méthode HTTP, qui est utilisée pour y accéder.
Obtenez / publier / put / supprimer API / contrôleur
Les types de retour d'action peuvent être des chaînes, int, ienumerable <t> et ainsi de suite, ou des types dérivés de ihttpactionResult, comme ok (), notfound (), ...
L'attribut d'itinéraire ci-dessus la méthode d'action, peut spécifier une route personnalisée pour y accéder.
[Frombody] & [Fromuri] peuvent être utilisés sur les paramètres de la méthode d'action pour spécifier leur origine.
La page d'aide (/ aide) contient des itinéraires API et leurs descriptions concernant la gestion des comptes. Par exemple, l'API / le compte / le registre contient des informations telles que la méthode HTTP et les paramètres utilisés.
Registre:
/ Aide API / Account / Register explique comment créer un compte. Dans Postman, nous pouvons faire une demande de poste à ce point de terminaison, avec des données requises dans le corps en tant que JSON X-WWW-FORM-FORM-Orlencoded ou brut. Si nous obtenons une réponse 200 ok, le compte est créé
Connectez-vous / Get Token:
Ceci n'est pas documenté sur la page d'aide. Nous obtenons un jeton à partir de / itinéraire de jeton. Demande de publication avec le corps x-www-form-urlencoded contenant: Grant_type: mot de passe, nom d'utilisateur: e-mail, mot de passe: mot de passe.
La réponse est dans le corps, il contient JSON, nous avons besoin d'une valeur Access_token pour faire des demandes de ressources protégées.
Obtenez des ressources protégées:
L'obtention de ressources à partir d'actions ou de contrôleurs qui ont [Autoriser] l'attribut nécessite un jeton d'accès.
Nous faisons une demande GET vers l'API / Valeurs avec en-tête d'autorisation avec valeur: "Bearer Access_Token_Value"
Auth / oauth2.0 et OIDC externes: