Modelo, visualização, controlador
Namespaces: System.Web.*, System.web.mvc, System.web.mvc.*
URL: base/controlador/ação/parâmetros
Configurações App_Start, como: pacote, filtro, roteamento
Controladores:
Controlador/ControllerBase -> ActionResult
Propriedades: validaterequest, viewbag, usuário, sessão, servidor, solicitação, resposta, httpcontext, controlerContext
Métodos: Validar, ActionResults
Controlador para visualizar os dados de aprovação: * Viewbag, ViewData, TempData * Instância do modelo criada no parâmetro ActionResult, aprovada como View (), na exibição @model app.models.person especificado, no restante da página Usamos modelo.propert/métodos
Visualizações:
*.cshtml, sintaxe de barbear, @ & @ {...}
@Helper, @Model, @Section Name {...}
Propriedades: HTML, AJAX, Viewbag, ViewContext, Sessão, Usuário, Contexto, Solicitação, Resposta, Servidor, Cache, Layout
Métodos: renderbody (), renderSection (), renderpage (), @styles.render ("bunde url"), @scripts.render ("bunde url")
htmlattributes em @html/ajax ajudantes é objeto anônimo, como: novo {id = "user"}
Atributos do controlador e ação : allowanonymous, autorize, httpget/delete/head/optio
Ações:
[HTTPGET/POST/PUT/DELETE] Atributos para especificar o método
Resultados: redirecionar, parcial, json, javascript, arquivo, conteúdo, visualização, vazio, httpstatuscode
As ações podem retornar diferentes tipos que não o ActionResult, como a string.
Parâmetros de ação passados como:
Ajudantes:
Html:
Métodos: Ação, ActionLink, Routelink, BeginFform, Fimform, AntiforgeryToken, exibição, etiqueta, métodos relacionados a entrada, métodos relacionados à validação
Formulário de amostra:
@using (Html.BeginForm("action","controller", FormMethod.Post))
{
@Html.TextBox("tb1")
<button type="submit"/>
}
Ajax:
Métodos: ActionLink, Routelink, BeginFform
BEGNFFORM no AJAX é semelhante à variação HTML, com a adição do parâmetro do objeto Ajaxoptions.
O Ajaxoptions fornece opções adicionais, como, elemento para atualizar e de retorno de chamada.
Sessão:
Controller & View Property, útil para gerenciamento de sessão.
O navegador recebe ASP.NET_SessionId Session Cookie.
Pode ser acessado como tipo indexado, armazenando informações úteis para a sessão em valor.
Propriedades e métodos estão focados na sessão e na coleção de pares de chave/valor.
Formulários:
Os formulários podem ser escritos em HTML simples:
<form method="post" action="/Home/NameAge">
<input type="text" name="name" />
<input type="number" name="age" />
<input type="submit"/>
</form>
Com o método de ação, parecendo:
[HttpPost]
public ActionResult NameAge(string name, int age)
{
ViewBag.Name = name;
ViewBag.Age = age;
return View();
}
Tipos personalizados (livro, pessoa, ...) podem ser usados como parâmetros de ação nesse caso, os atributos de nome de entrada devem corresponder ao nome das propriedades do tipo.
Caso haja parâmetros de ação multiplicar, o atributo de nome de entrada deve corresponder ao formato: parâmetro.property (Person1.name)
Especifique quais valores do elemento de entrada a serem encaminhados ao parâmetro: Public ActionResult Index ([bind (incluir = "id, nome")] pessoa) {...}
@Html.display/label/editorfor (m => m.age) para fazer a ligação de dados.
Atributos de anotação de dados para condições do modelo.
Validação do lado do servidor: View: @html.labelfor (M => M.FirstName) @html.editorfor (M => M.FirstName) @html.validationMessageFor (M => M.FirstName) Controller: Public ActionResult Index () => View (); [Httppost] Public ActionResult Index (pessoa de pessoa) {if (modelstate.isvalid) {return redirect ("okview"); } Return View (Guy); }
Download de arquivos:
Upload de arquivo:
HTTPPPOSTEDFILEBASE e seus tipos derivados são usados como parâmetros do método de ação quando enviamos arquivos usando formulários.
View html.beginform Método leva um parâmetro adicional: new {Enctype = "Multipart/Form-Data"}
Em ação, chamamos de file.saveas (@"path") para salvar o arquivo,
A propriedade do servidor pode ser usada para mapear caminhos locais para globais.
Estrutura básica:
App_start possui IdentityConfig.cs & startup.auth.cs arquivos
Novos namespaces comuns: Microsoft.aspnet.Identity, Microsoft.aspnet.Identity*, Microsoft.owin, Microsoft.owin.Security, Microsoft.Owin.Security*, System.Security.Claims
Propriedade do usuário no controlador e visualização pode ser usada para obter dados do usuário. Os membros principais são identidade e isinRole (nome da string).
Request.isauthenticed em vista para verificar se o usuário é autenticado.
Os controladores possuem o AccountController, para operações de login/inscrição.
Models possui o AccountViewModels & IdentityModels.
Tipos de base comumente usados: IdentityUser, IdentityDBContext, UserManager, SigninManager
Tipos comuns:
IdentityUser, IdentityDBContext, UserManager, SignInManager, IauthenticationManager são tipos comumente usados no gerenciamento de contas. Eles podem ser herdados e expandidos.
O IdentityUser contém informações da conta do usuário, como nome de usuário, hash de senha de e -mail.
IdentityDBContext é o contexto do banco de dados do entityframework usado para armazenar informações do usuário.
O UserManager pode criar, pesquisar e executar outras operações relacionadas ao usuário.
O SignInManager pode entrar no usuário, em sessão ou se lembrar de mim a caixa de seleção é verificada, de maneira persistente.
O IauthenticationManager pode registrar usuários.
Banco de dados:
O banco de dados de teste está na pasta app_data, *.mdf arquivo. A string de conexão está no web.config e é usada pelo ApplicationDbContext.
O banco de dados consiste nas próximas tabelas: usuários, funções, userclaim, userLogins, userroles.
OAuth2.0 e OpenID Connect:
Depois de obter o ID do cliente e o segredo, eles precisam ser adicionados no app_start> startup.auth.cs
No MVC, esse tipo de login é chamado de login "externo".
Funções e reivindicações:
O atributo [Authorize] é usado para permitir apenas usuários autenticados em controladores/ações.
[Allowanonymous] substitui isso.
IdentityUserClaim e IdentityUserrole são comumente usados.
ApplicationUser/IdentityUser possui funções e reivindicações de propriedades.
A propriedade UserManager pode ser usada para gerenciar reivindicações/funções para usuário específico.
IdentityDBContext/ApplicationDbContext possui tabela de funções.
Rolemanager é para funções, o que o userManager é para usuários.
[Authorize (Users = "...", Roles = "...")] Parâmetros de atributo podem ser usados para restringir mais o controlador/acesso à ação.
Construído sobre o MVC para fornecer funcionalidades necessárias para o desenvolvimento de serviços RESTful.
App_start possui webapiconfig.cs que lida com a configuração da API e roteamento da API, não feito por RouteConfig.cs
O Apicontroller é herdado pelos controladores de aplicativos.
Baseurl/help fornece documentos de API gerados.
As ferramentas comumente usadas para testes são Postman & Fiddler.
Ações:
Métodos de ação Os nomes correspondem ao método HTTP, que é usado para acessá -los.
GET/POST/PUT/PUT/DELETE API/Controller
Os tipos de retorno de ação podem ser string, int, ienumerable <T> e assim por diante, ou tipos derivados de ihttpactionResult, como ok (), notfound (), ...
O atributo de rota acima do método de ação pode especificar rota personalizada para acessá -lo.
[Frombody] & [Fromuri] pode ser usado nos parâmetros do método de ação para especificar sua origem.
A página de ajuda (/ajuda) contém rotas de API e suas descrições em relação ao gerenciamento de contas. Por exemplo, API/Conta/Registro contém informações como o método HTTP e os parâmetros usados.
Registro:
/Ajuda API/Conta/Register explica como criar conta. No Postman, podemos fazer uma solicitação de postagem para esse ponto de extremidade, com os dados necessários no corpo como JSON x-www-forma-urlcoded ou JSON RAW. Se obtivermos resposta 200 ok, a conta será criada
Faça login / obtenha token:
Isso não está documentado na página de ajuda. Obtemos token da rota /token. Publicar solicitação com o corpo x-www-form-urlencoded contendo: Grant_type: senha, nome de usuário: email, senha: senha.
A resposta está no corpo, contém JSON, precisamos do Access_Token Valor para fazer solicitações para recursos protegidos.
Obtenha o recurso protegido:
A obtenção de recursos de ações ou controladores que possuem o atributo [autorize] requer token de acesso.
Fazemos solicitação de receber para a API/valores com o cabeçalho da autorização com o valor: "Porter Access_Token_Value"
Auth / oAuth2.0 e OIDC externo: