‫۱۰ سال و ۸ ماه قبل، پنجشنبه ۱۰ بهمن ۱۳۹۲، ساعت ۱۶:۴۳
یک نکته‌ی تکمیلی
مطلب جاری توسط تیم NuGet منسوخ شده اعلام گردیده و در نگارش‌های جدید آن، به صورت خودکار و بدون نیاز به هیچگونه تنظیم اضافه‌تری انجام می‌شود. بیشتر در اینجا
‫۱۰ سال و ۸ ماه قبل، پنجشنبه ۱۰ بهمن ۱۳۹۲، ساعت ۱۴:۴۱
url routing از دات نت 3 و نیم، سرویس پک یک به بعد به صورت توکار و استاندارد، اضافه شده. فقط برای حالت دات نت سه و نیم باید یک سری تنظیمات اضافه‌تر به وب کانفیگ اضافه شوند (تعریف System.Web.Routing.UrlRoutingModule باید در قسمت httpModules ذکر شود).
‫۱۰ سال و ۸ ماه قبل، چهارشنبه ۹ بهمن ۱۳۹۲، ساعت ۲۱:۰۸
در یک View اگر قسمت‌های مختلف صفحه نیاز به مدل‌های متفاوتی دارند باید (بهتر است) از ViewModel استفاده کنید. برای نمونه اگر ViewModel شما به صورت زیر تعریف شده‌است و Model1 و Model2 هم هر کدام یک کلاس مجزا هستند:
public class MyViewModel
{
    public Model1 Model1 { set; get; }
    public Model2 Model2 { set; get; }
}
با این اکشن متد:
public ActionResult Index()
{
    var model = new MyViewModel();
    return View(model);
}
در یک View به نحو ذیل قابل استفاده خواهد بود:
@model Models.MyViewModel

@Html.EditorFor(model=>model.Model1)
<br />
@Html.EditorFor(model=>model.Model2)
‫۱۰ سال و ۸ ماه قبل، سه‌شنبه ۸ بهمن ۱۳۹۲، ساعت ۲۰:۲۸
یکی از اعضای تیم ASP.NET در اینجا عنوان کرده که Medium Trust به صورت رسمی منسوخ شده درنظر گرفته می‌شود و در محصولات آتی ما به هیچ عنوان مدنظر نخواهد بود و هاست‌ها باید به روش OS-level isolation کوچ کنند.
‫۱۰ سال و ۸ ماه قبل، سه‌شنبه ۸ بهمن ۱۳۹۲، ساعت ۱۳:۱۳
همانطور که در مقاله فوق هم ذکر شده، اگر محل فایل helper شما در پوشه App_Code است (و نه یک View قرار گرفته در پوشه Views برنامه)، نمی‌توانید مستقیما با Html@‌ها کار کنید. نیاز است از طریق پارامتر WebViewPage page به آن‌ها دسترسی پیدا کنید؛ یعنی:
@page.Html.Raw(data)
‫۱۰ سال و ۸ ماه قبل، دوشنبه ۷ بهمن ۱۳۹۲، ساعت ۱۹:۴۵
ایده کار، این بود که قسمتی را مثلا توسط یک کلاس پایه، یا یک اینترفیس خالی علامتگذاری کنید و سپس اطلاعات آن‌را تک تک به متد Entity مربوط به DbModelBuilder ارسال کنید. همین ایده را در متد Seed هم می‌شود پیاده سازی کرد. یک اینترفیس خالی را مثلا به نام IِMySeed تعریف کنید و به کلاس دلخواهی انتساب دهید (یا از MEF استفاده کنید). سپس اینطرف با Reflection این نوع کلاس‌ها را بارگذاری کرده و Context متد Seed را به طراحی انجام شده، برای عملیات نهایی و دلخواه ارسال کنید.
‫۱۰ سال و ۸ ماه قبل، دوشنبه ۷ بهمن ۱۳۹۲، ساعت ۱۹:۱۷
Role Provider شما عمل نمی‌کند. کلا کلاس آن‌را حذف کنید و از روش Authorizing Users with Role-Based Security بعد از لاگین شخص استفاده کنید (روش دومی بدون نیاز به Role Provider سفارشی؛ بر اساس اضافه کردن دستی نقش‌ها به کوکی رمزنگاری شده Roles سایت).
‫۱۰ سال و ۸ ماه قبل، دوشنبه ۷ بهمن ۱۳۹۲، ساعت ۱۷:۵۴
در حین لاگین، شما شیء User خاص خودتان را از دیتابیس واکشی می‌کنید. نام کاربری و کلمه عبور، توسط کاربر وارد شده، یک جستجوی LINQ متداول است برای یافتن وهله‌ای از شیء User. حالا این شیء یافت شده در صورت نال نبودن (ورود صحیح کلمه عبور و نام کاربری)، قابل استفاده است. Id آن‌را (که صفر هم نخواهد بود) به متدهای تنظیم کوکی و ری‌دایرکت FormsAuthentication انتساب دهید.
‫۱۰ سال و ۸ ماه قبل، دوشنبه ۷ بهمن ۱۳۹۲، ساعت ۱۷:۴۶
مباحث اعتبارسنجی در MVC را مطالعه کنید. پایه آن همین مطالب است. پس از اعتبارسنجی کاربر، در یک View می‌شود ساده if و else نوشت. مثلا:
@if (User.Identity.IsAuthenticated && User.IsInRole("Administrator"))
{
     <div id="sidebar">
      data
     </div>
}
در این حالت اگر کاربر به سیستم لاگین کرده باشد و همچنین نقش Administrator نیز به او پیشتر انتساب داده شده باشد، اطلاعات خاصی را مشاهده خواهد کرد.