Modelo, vista, controlador
Espacios de nombres: System.web.*, System.web.mvc, System.web.mvc.*
URL: base/controlador/acción/parámetros
App_Start configrations tales como: paquete, filtro, enrutamiento
Controladores:
Controller/ControllerBase -> ActionResult
Propiedades: ValidateRequest, Viewbag, usuario, sesión, servidor, solicitud, respuesta, httpcontext, controlerContext.
Métodos: Validar, ActionResults
Controlador Para ver los datos de aprobación: * ViewBag, ViewData, TempData * Instancia del modelo creada en ActionResult, pasada como parámetro View (), en vista @Model App.Models.Person especificada, en el resto de la página usamos model.Propertiest/Methods
Vistas:
*.cshtml, sintaxis de afeitar, @ & @ {...}
@helper, @model, @section Name {...}
Propiedades: HTML, AJAX, ViewBag, ViewContext, Sesión, usuario, contexto, solicitud, respuesta, servidor, caché, diseño
Métodos: renderBody (), renderSection (), renderPage (), @styles.render ("bunde url"), @scripts.render ("url bunde")
htmlattributes en @html/ajax helpers es un objeto anónimo, como: new {id = "user"}
Atributos de controlador y acción : AllowanonyMous, autorizar, httpget/delete/head/opciones/parche/post/put, nonaction, validateEntiforgeryToken, ruta
Comportamiento:
[Httpget/post/put/eliminar] atributos para especificar el método
Resultados: redirección, parcial, json, javascript, archivo, contenido, vista, vacío, httpstatuscode
Las acciones pueden devolver tipos distintos de ActionResult, como String.
Parámetros de acción aprobados como:
Ayudantes:
HTML:
Métodos: Acción, ActionLink, Routelink, BeginForm, Endform, AntiforgeryToken, Pantalla, etiqueta, métodos relacionados con la entrada, métodos relacionados con la validación
Formulario de muestra:
@using (Html.BeginForm("action","controller", FormMethod.Post))
{
@Html.TextBox("tb1")
<button type="submit"/>
}
Ajax:
Métodos: ActionLink, Routelink, BeginForm
BeginForm en AJAX es similar a la variación HTML, con la adición del parámetro del objeto Ajaxoptions.
Ajaxoptions proporciona opciones adicionales como el elemento para actualizar y las funciones de devolución de llamada.
Sesión:
Controlador y Ver Propiedad, útil para la gestión de sesiones.
El navegador obtiene ASP.NET_SESSIONID Cookie de sesión.
Se puede acceder como tipo indexado, almacenando información útil de la sesión en el valor.
Las propiedades y los métodos se centran en la sesión y su colección de pares de clave/valor.
Formularios:
Los formularios se pueden escribir en html simple:
<form method="post" action="/Home/NameAge">
<input type="text" name="name" />
<input type="number" name="age" />
<input type="submit"/>
</form>
Con el método de acción tomarlo como:
[HttpPost]
public ActionResult NameAge(string name, int age)
{
ViewBag.Name = name;
ViewBag.Age = age;
return View();
}
Los tipos personalizados (libro, persona, ...) se pueden usar como parámetros de acción en ese caso, los atributos del nombre de entrada deben coincidir con el nombre de las propiedades del tipo.
En caso de que haya parámetros de acción de multiplicación, el atributo de nombre de entrada debe coincidir con el formato: parámetro.property (persona1.name)
Especifique qué valores de elementos de entrada se vinculan al parámetro: Public ActionResult Index ([bind (include = "id, nombre")] persona) {...}
@Html.display/etiqueta/editor (m => m.age) para hacer enlace de datos.
Atributos de anotación de datos para condiciones del modelo.
Validación del lado del servidor: Ver: @html.labelfor (m => m.firstname) @html.editorfor (m => m.firstname) @html.validationMessagefor (m => m.firstname) controlador: public ActionResult index () => View (); [Httppost] Public ActionResult Index (Person Guy) {if (ModelState.ISValid) {return redirect ("okview"); } Vista de retorno (chico); }
Descarga del archivo:
Carga del archivo:
HttppostedFileBase y sus tipos derivados se utilizan como parámetros del método de acción cuando cargamos archivos utilizando formularios.
Ver el método Html.BeginForm toma un parámetro adicional: nuevo {enctype = "multipart/form-data"}
En acción llamamos a file.saveas (@"ruta") para guardar el archivo,
La propiedad del servidor se puede usar para mapear rutas locales a globales.
Estructura básica:
APP_Start tiene archivos identityconfig.cs & startup.auth.cs
Nuevos espacios de nombres comunes: Microsoft.aspnet.identity, Microsoft.aspnet.identity*, Microsoft.owin, Microsoft.owin.security, Microsoft.owin.security*, System.Security.Claims
La propiedad de usuario en el controlador y la vista se puede usar para obtener datos del usuario. Los miembros principales son Identity & IsInrole (nombre de cadena).
Request.isauthenticated en vista para verificar si el usuario está autenticado.
Los controladores tienen AccountController, para las operaciones de inicio de sesión/registro.
Los modelos tienen cuenta de cuenta de cuentas y modelos de identidad.
Tipos de base de uso común: IdentityUser, IdentityDBContext, Usermanager, SigninManager
Tipos comunes:
IdentityUser, IdentityDBContext, Usermanager, SigninManager, IauthenticationManager son tipos comúnmente utilizados en la gestión de cuentas. Pueden ser heredados y expandidos.
IdentityUser contiene información de la cuenta de usuario, como nombre de usuario, contraseña de correo electrónico hash.
IdentityDBContext es el contexto de la base de datos de EntityFramework utilizado para almacenar la información del usuario.
Usermanager puede crear, buscar y realizar otras operaciones relacionadas con el usuario.
SigninManager puede iniciar sesión en el usuario, en la sesión o si me recuerda la casilla de verificación, de manera persistente.
IauthenticationManager puede cerrar sesión en los usuarios.
Base de datos:
La base de datos de prueba está en la carpeta APP_DATA, *.MDF FILE. La cadena de conexión está en Web.Config, y es utilizado por ApplicationDBContext.
La base de datos consta de las siguientes tablas: usuarios, roles, usuarios, usuarios de usuarios, usroles.
OAuth2.0 y OpenID Connect:
Después de obtener ID y secreto del cliente, deben agregarse en App_Start> Startup.auth.cs
En MVC, este tipo de inicio de sesión se llama inicio de sesión "externo".
Roles y reclamos:
El atributo [autorizar] se usa para permitir solo usuarios autenticados en controladores/acciones.
[DETENIMONOMO] anula eso.
IdentityUsperclaim y identityuserrol se usan comúnmente.
ApplicationUser/IdentityUser tiene roles y reclamos de propiedades.
La propiedad Usermanager se puede utilizar para administrar reclamos/roles para un usuario específico.
IdentityDBContext/ApplicationDBContext tiene la tabla de roles.
Rolemanager es para roles, lo que Usermanager es para los usuarios.
[Authorize (Users = "...", roles = "...")] Los parámetros de atributo se pueden usar para obtener un control de controlador/acceso de acción.
Construido sobre MVC para proporcionar la funcionalidad necesaria para el desarrollo de servicios RESTful.
App_start tiene webapiconfig.cs que maneja la configuración de la API y el enrutamiento de API, no realizado por RouteConFig.cs
Apicontroller es tipo heredado por controladores de aplicaciones.
BaseUrl/Ayuda proporciona documentos API generados.
Las herramientas de uso común para las pruebas son Postman & Fiddler.
Comportamiento:
Los nombres de los métodos de acción coinciden con el método HTTP, que se utiliza para acceder a ellos.
Get/post/put/eliminar API/controlador
Los tipos de retorno de acción pueden ser String, int, ienumerable <t> y así sucesivamente, o tipos derivados de ihttpactionResult, como ok (), nofound (), ...
Atributo de ruta El método de acción anterior puede especificar la ruta personalizada para acceder a él.
[Frombody] y [fromuri] se pueden usar en parámetros del método de acción para especificar su origen.
La página de ayuda (/ayuda) contiene rutas API y sus descripciones con respecto a la gestión de cuentas. Por ejemplo, API/Cuenta/Registro contiene información como el método HTTP y los parámetros utilizados.
Registro:
/AYUDA API/Cuenta/Registro explica cómo crear una cuenta. En Postman, podemos hacer una solicitud posterior a ese punto final, con datos requeridos en el cuerpo como X-WWW-form-urlencoded o Raw JSON. Si obtenemos respuesta 200 ok, se crea una cuenta
Iniciar sesión / Get Token:
Esto no está documentado en la página de ayuda. Obtenemos token de la ruta /token. Publicar solicitud con el cuerpo X-www-form-urlencoded contiene: Grant_type: contraseña, nombre de usuario: correo electrónico, contraseña: contraseña.
La respuesta está en el cuerpo, contiene JSON, necesitamos el valor de Access_Token para realizar solicitudes para recursos protegidos.
Obtenga recurso protegido:
Obtener recursos de acciones o controladores que tienen [autorizar] el atributo requiere token de acceso.
Hacemos una solicitud para obtener la API/valores con el encabezado de autorización con valor: "Bearer Access_Token_Value"
Auth / oauth2.0 y oidc externo: