نموذج ، عرض ، وحدة تحكم
مساحات الأسماء: system.web.*، system.web.mvc ، system.web.mvc.*
عنوان URL: قاعدة/وحدة تحكم/عمل/معلمات
app_start الاعترافات مثل: الحزمة ، تصفية ، التوجيه
وحدات التحكم:
وحدة التحكم/ControlerBase -> ActionResult
الخصائص: ValidateRequest ، ViewBag ، المستخدم ، الجلسة ، الخادم ، الطلب ، الاستجابة ، httpcontext ، controlercontext
الطريقة: التحقق من صحة ، ActionResults
وحدة تحكم لعرض بيانات المرور: * viewbag ، viewData ، tempData * مثيل النموذج الذي تم إنشاؤه في ActionResult ، تم تمريره كمعلمة عرض () ، في عرض model app.models.person محدد ، في بقية الصفحة نستخدمها.
وجهات النظر:
*.cshtml ، Razor Syntax ، @ & @ {...}
@helper ، model ، اسم cection {...}
الخصائص: HTML ، AJAX ، ViewBag ، ViewContext ، الجلسة ، المستخدم ، السياق ، الطلب ، الاستجابة ، الخادم ، ذاكرة التخزين المؤقت
الطريقة: RenderBody () ، Rendersection () ، RenderPage () ، @Styles.Render ("Bunde url") ، @scripts.render ("Bunde url")
htmlattributes في @html/ajax مساعدين هو كائن مجهول ، مثل: new {id = "user"}
سمات وحدة التحكم والعمل : altromanymous ، upithed ، httpget/delete/head/head/patch/post/put ، nonaction ، facalateantiforgerytoken ، route
الإجراءات:
[httpget/post/put/delete] سمات لتحديد الطريقة
النتائج: إعادة التوجيه ، جزئي ، JSON ، JavaScript ، ملف ، محتوى ، عرض ، فارغ ، httpstatuscod
يمكن أن تُرجع الإجراءات أنواعًا بخلاف ActionResult ، مثل String.
تم تمرير معلمات الإجراء على النحو التالي:
المساعدون:
HTML:
الأساليب: الإجراء ، ActionLink ، Routelink ، Beginform ، Endform ، مضادات الأمواج ، العرض ، التسمية ، الأساليب المتعلقة بالمدخلات ، الطرق المتعلقة بالتحقق من الصحة
نموذج العينة:
@using (Html.BeginForm("action","controller", FormMethod.Post))
{
@Html.TextBox("tb1")
<button type="submit"/>
}
أياكس:
الأساليب: ActionLink ، Routelink ، Beginform
يشبه BeginForm في Ajax تباين HTML ، مع إضافة معلمة كائن Ajaxoptions.
يوفر Ajaxoptions خيارات إضافية مثل العنصر لتحديث ووظائف رد الاتصال.
حصة:
وحدة التحكم وعرض خاصية ، مفيدة لإدارة الجلسة.
Browser يحصل على ملف تعريف ارتباط جلسة 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();
}
يمكن استخدام أنواع مخصصة (كتاب ، شخص ، ...) كمعلمات عمل في هذه الحالة ، يجب أن تتطابق سمات اسم الإدخال لاسم خصائص النوع.
في حالة وجود معلمات عمل مضاعفة ، يجب أن تتطابق سمة اسم الإدخال: المعلمة.
حدد ما هي قيم عنصر الإدخال المراد أن تكون معلمة للمعلمة: فهرس ActionResult Public ([bind (include = "id ، name")] شخص) {...}
@html.display/label/editorfor (m => m.age) للقيام بربط البيانات.
سمات شرح البيانات لشروط النموذج.
التحقق من صحة جانب الخادم: عرض: @html.labelfor (m => m.firstName) @html.editorfor (m => m.firstName) @html.validationMessagefor (m => m.firstname) وحدة تحكم: مؤشر الإجراء العام () => عرض () ؛ [httppost] مؤشر الإجراءات العامة (الشخص الشخص) {if (modelState.isvalid) {return redirect ("okview") ؛ } إرجاع عرض (guy) ؛ }
تنزيل الملف:
تحميل الملف:
httppostedfileBase وأن الأنواع المشتقة تستخدم كمعلمات طريقة الإجراء عند تحميل الملفات باستخدام النماذج.
عرض طريقة html.beginform تأخذ معلمة إضافية: 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.claims
يمكن استخدام خاصية المستخدم في وحدة التحكم والعرض للحصول على بيانات المستخدم. الأعضاء الرئيسيون هم الهوية والهوية (اسم السلسلة).
request.isauthenticated في العرض للتحقق مما إذا تم مصادقة المستخدم.
تحتوي وحدات التحكم على حساب Conscontroller ، لتسجيل الدخول/التسجيل.
النماذج لديها حساب AccountViewModels و IdentityModels.
أنواع القاعدة الشائعة الاستخدام: IdentityUser ، IdentitedDBContext ، Usermanager ، SigninManager
الأنواع الشائعة:
الهوية ، IdentitedDbContext ، Usermanager ، SigninManager ، IauthenticationManager هي أنواع شائعة الاستخدام في إدارة الحساب. يمكن أن تكون ورثها وتوسيعها.
يحتوي IdentityUser على معلومات حساب المستخدم ، مثل اسم المستخدم ، وتجزئة كلمة مرور البريد الإلكتروني.
IdentityDBContext هو سياق قاعدة بيانات EntityFramework المستخدم لتخزين معلومات المستخدم.
يمكن لـ UserManager إنشاء عمليات أخرى تتعلق بالمستخدم والبحث عنها وتنفيذها.
يمكن لـ SignInmanager تسجيل الدخول إلى المستخدم ، في الجلسة أو إذا تم تحديد خانة الاختيار " تذكرني" ، بطريقة مستمرة.
يمكن لـ iAuthenticationManager تسجيل الخروج من المستخدمين.
قاعدة البيانات:
اختبار قاعدة البيانات في مجلد App_Data ، *.MDF File. سلسلة الاتصال في web.config ، ويتم استخدامها بواسطة ApplicationDBContext.
تتكون قاعدة البيانات من الجداول التالية: المستخدمون ، الأدوار ، الإرسالات المستخدمة ، userlogins ، userroles.
Oauth2.0 & OpenID Connect:
بعد الحصول على معرف العميل والسر ، يجب إضافتها في app_start> startup.auth.cs
في MVC ، يسمى نوع تسجيل الدخول هذا "الخارجي" تسجيل الدخول.
الأدوار والمطالبات:
يتم استخدام السمة [Oudlize] للسماح للمستخدمين المصادقين فقط في وحدات التحكم/الإجراءات.
[السماح) يتجاوز ذلك.
يتم استخدام IdentityUserClaim & IdentityUserrole بشكل شائع.
تطبيق ApplicationUser/Identityuser لديه أدوار ومطالبات الخصائص.
يمكن استخدام خاصية UserManager لإدارة المطالبات/الأدوار لمستخدم معين.
IdentityDBContext/ApplicationDBContext لديه جدول أدوار.
Rolemanager هو للأدوار ، ما هو UserManager للمستخدمين.
[Authorize (users = "..." ، Roles = "...")] يمكن استخدام معلمات السمات لمزيد من الوصول إلى وحدة التحكم/الإجراء.
بنيت فوق MVC لتوفير وظائف مطلوبة لتطوير الخدمة المريحة.
يحتوي App_start على webapiconfig.cs الذي يتولى تكوين واجهة برمجة التطبيقات ، وتوجيه واجهة برمجة التطبيقات ، ولم يتم ذلك بواسطة RouteConfig.cs
Apicontroller هو نوع ورث بواسطة وحدات تحكم التطبيق.
يوفر Baseurl/Help مستندات API التي تم إنشاؤها.
الأدوات الشائعة الاستخدام للاختبار هي Postman & Fiddler.
الإجراءات:
أسماء أساليب الإجراء تتطابق مع طريقة HTTP ، والتي يتم استخدامها للوصول إليها.
الحصول على/post/put/delete API/Controller
يمكن أن تكون أنواع إرجاع الإجراءات ، أو int ، أو ienumerable <T> وما إلى ذلك ، أو الأنواع المستمدة من ihttpactionResult ، مثل OK () ، notfound () ، ...
سمة المسار أعلاه طريقة الإجراء ، يمكن تحديد مسار مخصص للوصول إليه.
يمكن استخدام [Frombody] & [Fromuri] على معلمات طريقة الإجراء لتحديد أصلها.
تحتوي صفحة المساعدة (/المساعدة) على طرق API ، وأوصافها فيما يتعلق بإدارة الحساب. على سبيل المثال ، يحتوي API/Account/Record على معلومات مثل طريقة HTTP والمعلمات المستخدمة.
يسجل:
/مساعدة API/الحساب/التسجيل يشرح كيفية إنشاء حساب. في Postman ، يمكننا تقديم طلب نشر إلى نقطة النهاية هذه ، مع البيانات المطلوبة في الجسم مثل X-WWW-Form-urlencoded أو Raw JSON. إذا حصلنا على استجابة 200 موافق ، يتم إنشاء الحساب
تسجيل الدخول / الحصول على الرمز المميز:
لم يتم توثيق هذا على صفحة المساعدة. نحصل على رمز من /الرمز المميز. Post report مع Body X-WWW-Form-urlencoded يحتوي على: Grant_type: كلمة المرور ، اسم المستخدم: البريد الإلكتروني ، كلمة المرور: كلمة المرور.
الاستجابة في الجسم ، تحتوي على JSON ، نحتاج إلى قيمة Access_Token لتقديم الطلبات نحو الموارد المحمية.
احصل على مورد محمي:
يتطلب الحصول على موارد من الإجراءات أو وحدات التحكم التي لديها سمات [تفويض] الرمز المميز للوصول.
نقدم طلبًا نحو API/القيم مع رأس التفويض مع القيمة: "Bearer Access_Token_Value"
مصادقة خارجية / OAUTH2.0 و OIDC: