دسته بندی کردن لاگ ها در Serilog


در Serilog لاگ ها به صورت ترتیبی در فایل و یا در Elasticsearch ذخیره میشوند. این لاگ ها زمانیکه تعداد کاربران سایت زیاد میشوند و تعداد آن ها نیز افزایش می یابد، به صورت تصادفی ( به ازای ریکوئست کاربران ) در Elasticsearch و یا فایل متنی ذخیره میشوند. برای مثال یک کاربر ....
ادامه مطلب

نامعتبر سازی کوکی ها بعد از تغییر کلمه عبور کاربران


در Asp.Net Core به طور پیش فرض کوکی ها هر 30 دقیقه یک بار اعتبارسنجی میشوند. یعنی زمانی که کاربر به سایت لاگین میکند و اطلاعات خود را وارد میکند Claim های فعلی کابر در کوکی ذخیره میشود و میتواند به صفحه های مورد نظر خود دسترسی پیدا کند و تا 30 دقیقه اعتبارسنجی کوکی ها صورت نمیگیرد ....
ادامه مطلب

روشی برای محدود کردن API ها که هر درخواست با یک Key جدید قابل فراخوانی باشد ( Time-based One-time Password )


TOTP یک الگوریتمی است که از ساعت برای تولید رمزهای یکبارمصرف استفاده میکند. به این صورت که در هر لحظه یک کد منحصر به فرد تولید خواهد شد. اگر با برنامه Google Authenticator کار کرده باشید این مفهوم برایتان اشناست. در این مطلب میخواهیم سناریویی را پیاده سازی کنیم که برای ....
ادامه مطلب

معرفی Dapper


Dapper چیست؟ Dapper یک ORM کوچک و بسیار سریع است که توسط سایت Stackoverflow توسعه داده شده است. Dapper با هر نوع دیتابیسی کار میکند و مختص به یک دیتابیس خاص نیست. با استفاده از Dapper شما میتوانید دستورات SQL را به صورت Stored Procedure و یا به صورت دستورات مستقیم SQL اجرا کنید. اگر د ....
ادامه مطلب

استفاده از IClientModelValidator در Asp.Net Core 3.1


اگر بخواهیم یک Attribute را برای اعتبارسنجی ایجاد کنیم معمولا یک کلاس ایجاد میکنیم و از ValidationAttribute ارث بری میکنیم. و سپس متد IsValid را override میکنیم با توجه به نیازی که به آن Attribute داریم. به عنوان مثال در ادامه یک Attribute ایجاد کرده ایم که عمل مقایسه دو پراپرتی را انجام میدهد. ....
ادامه مطلب

استفاده از AutoMapper در Asp.Net Core


AutoMapper یک کتابخانه برای مپ کردن اشیا میباشد که کار مپ کردن دستی را بسیار ساده میکند. به عنوان مثال شما نیاز دارید یک DTO را به یک مدل دیگر مپ کنید. برای این کار شما باید برای تمامی پراپرتی های موردنیاز کد بنویسید. به طور مثال باید به صورت زیر عمل کنید: ....
ادامه مطلب

هدرهای امنیتی در Asp.Net Core


به صورت پیشفرض امکان نمایش سایت شما در داخل iframe وجود دارد. اما با استفاده از هدر X-Frame-Option میتوان جلوی این کار را گرفت. اما چرا؟ زیرا هرکس میتواند وب سایت شما را داخل یک iframe نمایش دهد و یک لایه ی ....
ادامه مطلب

حداقل نکات امنیتی در Asp.Net Core


در این مقاله به بررسی چند نکته امنیتی میپردازیم که برای هر وب سایتی الزامیست. لاگین خود را امن پیاده سازی کنید همیشه داده های مهم را هنگام ارسال رمزنگاری کنید کوکی کاربر را بعد از خروج پاک کنید همیشه از SSL استفاده کنید ....
ادامه مطلب

پیاده سازی Generic Controller همراه با Generic Repository


در هنگام توسعه پروژه زمانی که تعداد جداول افزایش می یابد پیاده سازی عملیات CRUD برای جداول وقت گیر میشود. در این مقاله به پیاده سازی سیستمی میپردازیم که عملیات CRUD را به صورت خودکار انجام دهد. ....
ادامه مطلب