モデル、ビュー、コントローラー
名前空間:System.Web。*、System.Web.Mvc、System.Web.Mvc。*
URL:ベース/コントローラー/アクション/パラメーター
app_startのコンフェイング:バンドル、フィルター、ルーティング
コントローラー:
コントローラー/コントローラーベース - > ActionResult
プロパティ:validAterequest、viewbag、user、session、server、request、response、httpcontext、controllercontext
方法:検証、actionsResults
渡されるデータを表示するコントローラー: * ViewBag、ViewData、TempData * ActionResultで作成されたモデルインスタンス、view()パラメーターとして渡され、@model app.models.personが指定されています。
ビュー:
*.cshtml、Razor Syntax、 @& @ {...}
@helper、@model、@section name {...}
プロパティ:HTML、AJAX、ViewBag、ViewContext、セッション、ユーザー、コンテキスト、リクエスト、応答、サーバー、キャッシュ、レイアウト
方法:renderbody()、rendersection()、renderpage()、 @styles.render( "bunde url")、 @scripts.render( "bunde url")
@html/ajaxヘルパーのhtmlattributesは、次のような匿名のオブジェクトです:new {id = "user"}
コントローラー&アクション属性:Allowanonymous、Authorize、httpget/delete/head/options/patch/post/put/put、nonaction、validateantiforgerytoken、route
行動:
[httpget/post/put/delete]メソッドを指定する属性
結果:リダイレクト、パート、json、javascript、file、content、view、empty、httpstatuscode
アクションは、文字列のように、アクション以外のタイプを返すことができます。
アクションパラメーターが渡されました:
ヘルパー:
HTML:
方法:アクション、ActionLink、RoutelInk、beginform、endform、antiforgerytoken、ディスプレイ、ラベル、入力関連方法、検証関連の方法
サンプルフォーム:
@using (Html.BeginForm("action","controller", FormMethod.Post))
{
@Html.TextBox("tb1")
<button type="submit"/>
}
ajax:
方法:ActionLink、routeLink、beginform
AjaxのBeginFormは、Ajaxoptionsオブジェクトパラメーターを追加して、HTMLバリエーションに似ています。
Ajaxoptionsは、機能を更新およびコールバックする要素などの追加オプションを提供します。
セッション:
セッション管理に役立つコントローラーおよびビュープロパティ。
ブラウザはASP.NET_SESSIONIDセッションCookieを取得します。
インデックス付きタイプとしてアクセスでき、有用なセッション情報を価値のあるものに保存できます。
プロパティと方法は、セッションに焦点を当てており、キー/バリューのペアのコレクションです。
フォーム:
フォームはプレーン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(include = "id、name")] {...}
@html.display/label/editorfor(m => m.age)データバインディングを行う。
モデル条件のデータアノテーション属性。
サーバーサイドの検証:view: @html.labelfor(m => m.firstname) @html.editorfor(m => m.firstname) @html.validationmessagefor(m => m.firstname)コントロール:パブリックアクションインデックス()=> view(); [httppost] public ActionResult Index(Person Guy){if(modelState.isValid){return redirect( "okview"); } return View(guy); }
ファイルのダウンロード:
ファイルアップロード:
httppostedfilebaseと派生型は、フォームを使用してファイルをアップロードする際にアクションメソッドパラメーターとして使用されます。
html.beginformメソッドを表示するパラメーターを追加します:new {enctype = "multipart/form-data"}
アクションでは、file.saveas(@"path")を呼び出してファイルを保存します。
サーバープロパティを使用して、ローカルからグローバルパスからマップできます。
基本構造:
app_startにはIDCONFIG.CS&STARTUP.AUTH.CSファイルがあります
新しい共通名の空間:microsoft.aspnet.identity、microsoft.aspnet.identity*、microsoft.owin、microsoft.owin.security、microsoft.owin.security*、System.security.claims
コントローラーとビューのユーザープロパティを使用して、ユーザーデータを取得できます。メインメンバーはIDとISINROLE(文字列名)です。
request.isauthentectedユーザーが認証されているかどうかを確認します。
コントローラーには、ログイン/サインアップ操作用のAccountControllerがあります。
モデルにはaccountViewModelsとIdentityModelsがあります。
一般的に使用されるベースタイプ:IdentityUser、IdentityDBContext、Usermanager、SigninManager
一般的なタイプ:
IdentityUser、IdentityDBContext、UserManager、SigninManager、iAuthenticationManagerは、アカウント管理で一般的に使用されるタイプです。それらを継承して拡張することができます。
IdentityUserには、ユーザー名、電子メールパスワードハッシュなどのユーザーアカウント情報が含まれています。
IDDBContextは、ユーザー情報の保存に使用されるEntityFrameworkデータベースコンテキストです。
UserManagerは、他のユーザー関連操作を作成、検索、実行できます。
SigninManagerは、セッション中にユーザーにサインインできます。また、チェックボックスがチェックされている場合、永続的な方法でチェックボックスがチェックされます。
iAuthenticationManagerはユーザーをログアウトできます。
データベース:
テストデータベースはapp_dataフォルダー、 *.mdfファイルにあります。接続文字列はweb.configで、applicationdbcontextで使用されています。
データベースは、ユーザー、役割、userClaims、userlogins、userroles:次のテーブルで構成されています。
oauth2.0&openid connect:
クライアントID&Secretを取得した後、app_start> startup.auth.csに追加する必要があります
MVCでは、このログインタイプは「外部」ログインと呼ばれます。
役割と主張:
[authorize]属性は、コントローラー/アクションで認証されたユーザーのみを許可するために使用されます。
[Allowanonymous]それを無効にします。
IdentityUserclaim&Identity -Suserroleが一般的に使用されています。
ApplicationUser/IdentityUserには、プロパティの役割とクレームがあります。
UserManagerプロパティは、特定のユーザーの請求/役割を管理するために使用できます。
IDDBContext/ApplicationDBContextには役割テーブルがあります。
RoleManagerは、Usermanagerがユーザー向けの役割のためのものです。
[authorize(users = "..."、choles = "...")]属性パラメーターを使用して、制約コントローラー/アクションアクセスをさらに制約できます。
MVCの上に構築され、安らかなサービス開発に必要な機能を提供します。
app_startには、api構成を処理するwebapiconfig.csと、routeconfig.csによって行われていないAPIルーティングがあります
Apicontrollerは、アプリケーションコントローラーによって継承されるタイプです。
baseurl/helpは、生成されたAPIドキュメントを提供します。
テストに一般的に使用されるツールは、Postman&Fiddlerです。
行動:
アクションメソッド名は、HTTPメソッドと一致します。これは、アクセスに使用されます。
get/post/put/削除API/コントローラー
アクションリターンタイプは、string、int、ienumerable <t>などです。または、ok()、notfound()、...などのihttpactionResultから派生したタイプです。
アクションメソッド上のルート属性は、アクセスするためのカスタムルートを指定できます。
[frombody]&[fromuri]は、アクションメソッドパラメーターで使用してその起源を指定できます。
ヘルプページ(/ヘルプ)には、APIルートとアカウント管理に関する説明が含まれています。たとえば、API/アカウント/レジスタには、HTTPメソッドや使用されるパラメーターなどの情報が含まれています。
登録する:
/ヘルプAPI/アカウント/レジスタは、アカウントの作成方法について説明します。 Postmanでは、X-WWW-Form-UrlencodedまたはRAW JSONとしてボディに必要なデータを使用して、そのエンドポイントへのPOSTリクエストを行うことができます。応答200 OKを取得した場合、アカウントが作成されます
ログイン /取得トークン:
これはヘルプページに文書化されていません。 /トークンルートからトークンを取得します。 body x-www-form-urlencodedを含むボディのリクエストを投稿:grant_type:パスワード、ユーザー名:電子メール、パスワード:パスワード。
応答は体内にあり、JSONが含まれており、保護されたリソースにリクエストを行うにはAccess_Token値が必要です。
保護されたリソースを取得します:
[Authorize]属性を持つアクションまたはコントローラーからリソースを取得するには、アクセストークンが必要です。
api/valuesを承認ヘッダーで値を付けてリクエストします:「Bearer Access_Token_Value」
外部auth / oauth2.0&oidc: