ممکن است برای بعضی پروژهها پیش امده باشد که بخواهید پارامترهای مختلف را از طریق خط فرمان از کاربر دریافت کنید. command line parser این امکان را به شما میدهد تا کلاس هایی را تعریف کرده و دستورات و پارامترهای خط فرمانی مورد نظرتان را به آنها map کنید. به این وسیله شما در برنامه به جای پردازش پارامترهای ورودی، با نمونههای (instance) کلاسهای مورد نظر طرف هستید.
نظرات مطالب
دستیابی به HttpContext در Blazor Server
اگر میخواهید اطلاعاتی نظیر کاربر را دریافت کنید آنگاه میتوانید AuthenticationStateProvider را در DbContext تزریق کنید. یک نمونه پیاده سازی در SO.
اما دسترسی به HttpContext در هیچ کجای برنامه Blazor Server غیر از Host.cshtmlـ مقدار تضمین شده درستی را در بر نخواهد داشت. همچنین میتوانید با اضافه کردن خط زیر در استارت آپ برنامه، با تزریق وابستگی، به HttpContext، در سرویسها به آن دسترسی داشته باشید. ()Services.AddHttpContextAccessor
مدتی هست که دنبال روشی هستم تا بتوان فایل PDF را بصورت پویا دریافت کرده و در browser توسط یک برنامه ASP.NET Core نمایش داد. مثل استفاده از
ولی چیزی که من میخواهم عدم امکان save کردن فایل توسط کاربر هست. یعنی قابلیتهای paging و search وجود داشته باشند ولی print و save نه.
Response.AddHeader("content-disposition", "inline;filename=sample.pdf");
برای این کار کامپوننتهای آماده ای توسط Telerik و Syncfusion ارائه شده اند ولی من به دنبال راه حلهای غیر تجاری هستم. آیا چیزی وجود دارد در این زمینه؟
سلام؛ استفاده من از این توکن به این صورت هست که یک پروژه MVC دارم. حالا در برخی صفحات که نیاز به واکشی دیتای گریدها دارم میخوام با استفاده از WebApi دیتا رو دریافت کنم که البته در آینده اپ موبایلی هم اضافه خواد شد.
سؤال من اینجاست که آیا در هر صفحه که نیاز به استفاده WebApi دارم آیا باید متد doLogin رو فراخوانی کنم یا نه مثلا بعد از لاگین شدن کاربر در برنامه MVC اینکار فقط یکبار انجام میشه؟
سوال بعد اینه که آیا واقعا مقادیری مثل پسورد باید در doLogin مشخص باشه؟ مبحث امنیت پسورد چطور خواهد شد؟
وقتی کاربر جدید ثبت میکنیم:
دیگه به تابع SaveChanges دسترسی نداریم. unit of work در AccountController استفاده نشده. برای بقیه entityها که خودمون ایجاد کردیم و اینترفیس و سرویس براشون ایجاد کردیم (مثل کلاس EfCategoryService ) برای اون جواب میده؛ چون که در سازنده IUnitOfWork رو دریافت میکنم.
var createResult = this.Create(user, password); var result = await _userManager.CreateAsync(user, model.Password).ConfigureAwait(false);
مراجعه کنید به مطلب «اعتبار سنجی ورودیهای کاربر در Kendo UI». در انتهای
مطلب در مورد «اعتبارسنجی سفارشی در DataSource»
بحث شدهاست. Kendo UI Grid هم اطلاعات اعتبارسنجی فیلدهای خودش را از data source دریافت میکند و ... اصول طراحی اعتبارسنجی آن، هیچ تفاوتی با نکتهی عنوان شده ندارد (یک custom rule سفارشی را به نام remote، دقیقا مانند همین مثال میتوانید اضافه کنید).
نظرات مطالب
ASP.NET MVC #18
- اگر از فیلتر Authrozie استفاده کنم البته به صورت [Authorize(Roles="Admins")] حالت loop پیش میاد بنابراین برای رفع این مشکل از روش که خودتون گفتین استفاده کردم یعنی [SiteAuthorize(Roles="Admins")] ، در این حالت خطای Attempted to perform an unauthorized operation. را دریافت میکنم.
- مقدار User.Identity.Name در صورت استفاده از فیلتر Authrozie یا SiteAuthorize (بدون تعیین کاربر و یا نقش) در یک صفحه معمولی مقدار صفر را برمیگرداند.
- breakpoint هم گذاشتم از صدا زده نمیشود.
نظرات مطالب
چند نکته کاربردی درباره Entity Framework
در حالت نه آنچنان Detached ! (دریافت یک لیست از Context ایی که ردیابی نداره)
....
در متن هم گفته شد وقتی همه چیز رو خاموش کردیم ما باید وضعیت موجودیت رو مشخص کنیم. مثلا لیستی از اشیا رو میسازیم کاربر یکی رو انتخاب میکنه تغییر میده و ما در لحظه ذخیره سازی وضعیت اونو به "تغییر داده شده" تغییر میدیم.
dbContext.Entry(entity).State = EntityState.Modified;
در حقیقت همه اشیا CLR ساده هستند و در موقع درخواست ثبت تغییرات از ef کمک میگیریم.
لازم نیست مدیریت کنید. هدف این بوده که نظم جاری را تغییر دهد. این استثناء توسط ELmah دریافت و ثبت خواهد شد. همچنین کاربر به یکی از صفحات پیش فرض خطای برنامه هدایت میشود و متوجه خواهد شد که خطایی رخ داده است.
ولی در کل میشود IExceptionFilter را نیز پیاده سازی و مدیریت کرد:
ولی در کل میشود IExceptionFilter را نیز پیاده سازی و مدیریت کرد:
public class CustomFilter : FilterAttribute, IExceptionFilter { public void OnException(ExceptionContext filterContext) {
درسته. علت این است که پوشه App_Data محافظت شده است و از طریق فراخوانی لینک آن به صورت مستقیم قابل دسترسی نیست.
اگر فایلها رو در این پوشه ارسال میکنید نیاز هست مثلا یک کنترلر دیگر به نام file درست کنید و کار این کنترلر فایل، دریافت نام تصویر و ارسال آن به صورت return File به مرورگر کاربر باشد.
یا اینکه کلا از یک پوشه معمولی استفاده کنید.
+
ضمن اینکه کاراکتر ~ برای تگ معمولی img مفهومی ندارد و نباید از آن در پایان کار استفاده شود.
اگر فایلها رو در این پوشه ارسال میکنید نیاز هست مثلا یک کنترلر دیگر به نام file درست کنید و کار این کنترلر فایل، دریافت نام تصویر و ارسال آن به صورت return File به مرورگر کاربر باشد.
یا اینکه کلا از یک پوشه معمولی استفاده کنید.
+
ضمن اینکه کاراکتر ~ برای تگ معمولی img مفهومی ندارد و نباید از آن در پایان کار استفاده شود.