• ASP.NET Core 1 – قسمت 38
ASP.NET Core 1 – قسمت 38
1395/02/10 - 13:36:21 // MVC 5 & 6 // 0 نظر // 4229 بازدید

در قسمت قبلی تنظیمات Identity انجام و Migration نیز به درستی انجام گردید. اگر الان پروژه را اجرا کنیم و نیاز داشته باشیم به قسمتهایی که لاگین نیاز دارد برویم ، چه خواهد شد ؟

بسمه تعالی

ASP.NET Core 1 قسمت 38

در قسمت قبلی تنظیمات Identity انجام و Migration نیز به درستی انجام گردید. اگر الان پروژه را اجرا کنیم و نیاز داشته باشیم به قسمتهایی که لاگین نیاز دارد برویم ، چه خواهد شد ؟.

این چیزی است که با آن روبرو خواهیم شد . یکبار دیگر به Developer Tools برویم .

Identity سعی دارد ما را به صفحه لاگین هدایت کند یا به شکلی دیگر ، سعی دارد یک Action Method به آدرس

را اجرا کند ، ولی اصلن چنین متدی وجود ندارد و این سبب شده فقط پیام درون Greeting را به خاطر تنظیمات قبلی که داشتیم نمایش دهد .

حال وقت آن است که امکان لاگین کردن واقعی را به کاربر بدهیم ، ولی برای Login کردن به نام کاربری و رمز عبور نیاز است ، پس باید اول امکان Register کردن را فراهم کنیم.

هر دو قابلیت که Login و Register هستند ، در Account Controller قرار خواهند داشت. یک Controller جدید به نام AccountController در فولدر Controllers باید بسازیم.برای بدنه کلاس ، مشابه زیر عمل کنید .

کلاس من که یک Controller است باید از Controller Base Class ارث بری کند و بعدا مشابه فرم Edit باید دو متد داشته که با یکی فقط صدا زده شده و با دیگری اطلاعات کاربر را Post نماید .

برای نمایش یکسری فیلد خاص بهتر است یک ViewModel جدید بسازیم تا فقط فیلدهای لازمه را از کاربر دریافت کنیم .

در فولدر ViewModel مشابه زیر یک کلاس ایجاد کنید . در اینجا من خودم را درگیر یک لیست از مشخصات فرد نکرده و فقط UserName و Password را لازم دارم . حتی آدرس Email کاربر را هم دریافت نمیکنم.

خوب این ViewModel من است . نام کاربری با طول حداکثری 256 کاراکتر و وضعیت اجباری ورود توسط کاربر . رمز عبور که از طریق Attribute ها به صورت رمز تعریف شده و در دیتابیس Hash خواهد شد . رو تایید رمز عبور که باز به فرمت رمز است و از طریق Compare با مقدار Password مقایسه و باید برابر باشد . همه اینها با کمک Data Annotation برقرار گردید که قبلن هم در موردش صحبت شده است .

حالا وقت داشتن یک View برای نمایش فرم Register است .

یک فولدر Account در Views باید بسازیم. درون این فولدر هم یک View به اسم Register باید ساخته شود . خوب حالا Model صفحه را RegisterViewModel قرار داده و مطابق زیر ادامه میدهیم.

تصویر بالا ، تصویر Register View است . قسمت Model که تعریف شد . یک فرم تعریف شد که طبیعتن باید نوعش Post باشد و به کنترلر Account و Register Action متصل است . یک Label برای UserName نیاز دارم که تعریف شده و برای آن یک Input برای وارد کردن مقدار UserName و یک Span برای Validation هم داریم. برای 2 فیلد دیگر هم همین کار تکرار شده و یک دکمه Submitهم قرار داده ایم. تنها تفاوت با بخشهای قبلی یک Validation Summary است که بعد از تعریف فرم ایجاد شده و بر اساس تنظیماتی که مشاهده میکنید ، فقط خطاهای سطح Model را پوشش میدهد . مثلن اگر نام کاربر و رمز و عبور را وارد نکنید ، هر دو پیام خطا را در Summary خواهیم داشت.

نکته 1: نیازی نیست Input ها را برای حالت Password پیدا کردن تغییری دهید و بر اساس تنظیمات ViewModel این کار انجام می شود.

نکته 2: برای جلوگیری از نیاز به هر بار تعریف کردن فولدر و NameSpace مختص به ViewModels ، در ViewImports مشابه زیر عمل کنید .

خوب حالا در Account Controller یک متد Post مشابه زیر بسازید .

تا اینجا هنوز بدنه Register باقی مانده و داشتن فرم Login که این بخشها را در قسمت بعدی پیگیری میکنیم.

 
علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
ارسال نظر