모델,보기, 컨트롤러
네임 스페이스 : System.Web.*, System.Web.mvc, System.Web.Mvc.*
URL : 기본/컨트롤러/액션/매개 변수
APP_START : 번들, 필터, 라우팅과 같은 구성
컨트롤러 :
컨트롤러/컨트롤러베이스 -> ActionResult
속성 : ValidAteRequest, ViewBag, 사용자, 세션, 서버, 요청, 응답, HTTPContext, ControlLerConText
방법 : 유효성 검사, 액션 소식
전달 데이터를 볼 수있는 컨트롤러 : * Viewbag, ViewData, TempData * ActionResult에서 생성 된 모델 인스턴스, view () 매개 변수로 전달되었습니다. @model app.models.person에서는 view () 매개 변수로 전달됩니다.
보기 :
*.cshtml, 면도기 구문, @ & @ {...}
@Helper, @Model, @Section Name {...}
속성 : HTML, AJAX, Viewbag, ViewContext, 세션, 사용자, 컨텍스트, 요청, 응답, 서버, 캐시, 레이아웃
방법 : RenderBody (), rendersection (), renderPage (), @Styles.Render ( "bunde url"), @scripts.render ( "bunde url")
@html/ajax helpers in htmlattributes : new {id = "user"}와 같은 익명 객체입니다.
컨트롤러 및 액션 속성 : 허용, 허가증, 승인, httpget/delete/head/옵션/패치/post/pot, nonaction, validateantiforgeryToken, Route
행위:
[httpget/post/put/delete] 속성을 지정하려면 속성입니다
결과 : 리디렉션, 부분, JSON, JAVASCRIPT, 파일, 내용, 뷰, VIMP, HTTPSTATUSCODE
액션은 문자열과 같은 ActionResult 이외의 유형을 반환 할 수 있습니다.
동작 매개 변수는 다음과 같이 통과했습니다.
도우미 :
HTML :
방법 : ACTION, ACTIONLINK, ROUTELINK, BEGINGFORM, ENDFORM, AntiforGeryToken, 디스플레이, 레이블, 입력 관련 메소드, 유효성 검사 관련 방법
샘플 양식 :
@using (Html.BeginForm("action","controller", FormMethod.Post))
{
@Html.TextBox("tb1")
<button type="submit"/>
}
Ajax :
방법 : ActionLink, RouteLink, BeginForm
ajax의 beginform은 ajaxoptions 객체 매개 변수를 추가하여 HTML 변형과 유사합니다.
Ajaxoptions는 Update to Update 및 콜백 기능과 같은 추가 옵션을 제공합니다.
세션:
컨트롤러 및보기 속성, 세션 관리에 유용합니다.
브라우저는 asp.net_sessionid 세션 쿠키를 가져옵니다.
유용한 세션 정보를 값으로 저장하는 색인 유형으로 액세스 할 수 있습니다.
속성 및 방법은 세션에 중점을두고 있으며 키/값 쌍의 컬렉션에 중점을 둡니다.
양식 :
양식은 일반 HTML로 작성할 수 있습니다.
<form method="post" action="/Home/NameAge">
<input type="text" name="name" />
<input type="number" name="age" />
<input type="submit"/>
</form>
액션 방법을 사용하여 다음과 같이 보입니다.
[HttpPost]
public ActionResult NameAge(string name, int age)
{
ViewBag.Name = name;
ViewBag.Age = age;
return View();
}
사용자 정의 유형 (책, 사람, ...)은 동작 매개 변수로 사용할 수 있으며 입력 이름 속성은 유형 속성의 이름과 일치해야합니다.
곱하기 액션 매개 변수가있는 경우 입력 이름 속성은 형식과 일치해야합니다 : parameter.property (person1.name)
매개 변수에 부드러운 입력 요소 값을 지정하십시오 : public actionResult index ([bind (포함 = "id, name") person) {...}
@html.display/label/editorfor (m => m.age) 데이터 바인딩을 수행합니다.
모델 조건에 대한 데이터 주석 속성.
서버 측 유효성 검사 :보기 : @html.labelfor (m => m.firstname) @html.editorfor (m => m.firstname) @html.validationmessagefor (m => m.firstname) controller : public actionResult index () => view (); [httppost] public actionResult index (person guy) {if (modelstate.isvalid) {return redirect ( "okview"); } return view (Guy); }
파일 다운로드 :
파일 업로드 :
httppostedfilebase & 파생 유형은 양식을 사용하여 파일을 업로드 할 때 액션 메소드 매개 변수로 사용됩니다.
보기 html.beginform method는 추가 매개 변수를 가져옵니다 : new {Enctype = "multipart/form-data"}}
실제로 파일을 저장하기 위해 File.Saveas (@"Path")를 호출합니다.
서버 속성을 사용하여 로컬 경로에 매핑 할 수 있습니다.
기본 구조 :
App_start에는 IdentityConfig.cs & startup.auth.cs 파일이 있습니다
새로운 공통 네임 스페이스 : Microsoft.aspnet.identity, Microsoft.aspnet.identity*, Microsoft.owin, Microsoft.owin.security, Microsoft.owin.security*, System.Security.Cleaims
컨트롤러 및보기의 사용자 속성을 사용하여 사용자 데이터를 얻을 수 있습니다. 주요 멤버는 Identity & Isinrole (문자열 이름)입니다.
request.useastical이 사용자가 인증되었는지 확인하십시오.
컨트롤러에는 로그인/가입 작업을위한 AccountController가 있습니다.
모델에는 AccountViewModels 및 IdentityModels가 있습니다.
일반적으로 사용되는 기본 유형 : IdentityUser, IdentityDBContext, UserManager, SignInManager
일반적인 유형 :
IdentityUser, IdentityDBContext, UserManager, SignInManager, iAuthenticationManager는 계정 관리에서 일반적으로 사용되는 유형입니다. 그들은 상속 받고 확장 될 수 있습니다.
IdentityUser에는 사용자 이름, 이메일 비밀번호 해시와 같은 사용자 계정 정보가 포함되어 있습니다.
IdentityDbContext는 사용자 정보 저장에 사용되는 EntityFramework 데이터베이스 컨텍스트입니다.
UserManager는 다른 사용자 관련 작업을 작성, 검색 및 수행 할 수 있습니다.
SignInManager는 사용자, 세션에서 가입 할 수 있습니다 .
iAuthenticationManager는 사용자를 로그 아웃 할 수 있습니다.
데이터 베이스:
테스트 데이터베이스는 APP_DATA 폴더 *.MDF 파일에 있습니다. Connection String은 web.config에 있으며 ApplicationDBContext에서 사용됩니다.
데이터베이스는 사용자, 역할, 사용자 클레임, 사용자 리그, USERROLES의 다음 테이블로 구성됩니다.
OAUTH2.0 & OpenID Connect :
클라이언트 ID & Secret을 얻은 후 APP_START> STARTUP.AUTH.CS에 추가해야합니다.
MVC 에서이 로그인 유형을 "외부"로그인이라고합니다.
역할 및 클레임 :
[Authorize] 속성은 컨트롤러/작업에서 인증 된 사용자 만 허용하는 데 사용됩니다.
[허용]은 그것을 무시합니다.
IdentityUserclaim & IdentityUserrole이 일반적으로 사용됩니다.
ApplicationUser/IdentityUser에는 속성 역할 및 클레임이 있습니다.
UserManager 속성을 사용하여 특정 사용자의 클레임/역할을 관리 할 수 있습니다.
IdentityDBContext/ApplicationDBContext는 역할 테이블이 있습니다.
RoleManager는 사용자를위한 사용자를위한 역할을위한 것입니다.
[userize (userize (userize = "...", roboles = "...")] 속성 매개 변수를 사용하여 컨트롤러/작업 액세스를 추가로 제한 할 수 있습니다.
MVC 위에 구축되어 편안한 서비스 개발에 필요한 기능을 제공합니다.
APP_START에는 API 구성 및 API 라우팅을 처리하는 webapiconfig.cs가 있습니다.
Apicontroller는 응용 프로그램 컨트롤러에 의해 상속 된 유형입니다.
Baseurl/Help는 생성 된 API 문서를 제공합니다.
일반적으로 사용되는 테스트 도구는 Postman & Fiddler입니다.
행위:
액션 메소드 이름은 HTTP 방법과 일치하며 액세스하는 데 사용됩니다.
Get/Post/Put/Delete API/Controller
액션 리턴 유형은 문자열, int, ienumerable <t> 등이 될 수 있습니다.
경로 속성 위의 조치 방법은 액세스 할 수있는 사용자 정의 경로를 지정할 수 있습니다.
[Body] & [Fromuri]는 동작 메소드 매개 변수에 사용하여 원점을 지정할 수 있습니다.
도움말 페이지 (/help)에는 API 경로와 계정 관리에 대한 설명이 포함되어 있습니다. 예를 들어 API/Account/Register에는 HTTP 방법 및 사용 된 매개 변수와 같은 정보가 포함되어 있습니다.
등록하다:
/도움말 API/Account/Register는 계정을 만드는 방법을 설명합니다. 우체부에서는 본문에 필요한 데이터를 x-www- 형태로 인코딩 또는 원시 JSON과 함께 해당 엔드 포인트에 대한 게시물 요청을 할 수 있습니다. 응답 200 OK를 받으면 계정이 생성됩니다
로그인 / 토큰 GET :
이것은 도움말 페이지에 문서화되어 있지 않습니다. 우리는 /토큰 경로에서 토큰을 얻습니다. 본문 x x www-form-urlencoded가 포함 된 게시물 요청 : grant_type : 비밀번호, 사용자 이름 : 이메일, 비밀번호 : 비밀번호.
응답은 신체에 있으며 JSON이 포함되어 있으며 보호 자원에 대한 요청을하려면 Access_Token 값이 필요합니다.
보호 자원 받기 :
[승인] 속성이있는 작업 또는 컨트롤러에서 리소스를 얻으려면 액세스 토큰이 필요합니다.
우리는 값을 가진 권한 부여 헤더로 API/값에 대한 요청을합니다. "Bearer Access_Token_Value"
외부 인증 / oauth2.0 & OIDC :