نظرات مطالب
جلوگیری از ارسال Spam در ASP.NET MVC
به عنوان یک پیشنهاد، می‌توان پارامتری دیگری هم اضافه کرد تا در صورت لزوم، کاربر به آدرس دیگری منتقل شود.
public string RedirectUrl {get; set; }

...
if(cache[hasValue] != null) {
      filterContext.Controller.ViewData.ModelState.AddModelError("...", ...);
      filterContext.HttpContext.Response.Redirect(RedirectUrl);
}

نظرات مطالب
پیاده سازی JSON Web Token با ASP.NET Web API 2.x
سلام؛ من نمونه رو با Identity نوشتم ولی در کلاس JwtAuthorizeAttribute، متد OnAuthorization  مقدار actionContext.Request.Headers.Authorization برابر با null میشه.

اگر امکانش هست در خصوص actionContext که چی هست و کی وهله سازی میشه هم توضیح بدید.
نظرات مطالب
استفاده از قابلیت پارتیشن بندی در آرشیو جداول بانک‌های اطلاعاتی SQL Server
می توانید برای جداولی که حاوی داده می‌باشند نیز از امکان Partitioning استفاده نمائید. برای جدول Orders سناریوی مورد بررسی، بدون استفاده از PartitionSchema به شکل زیر ایجاد می‌شود:

CREATE TABLE Orders
(
OrderID INT IDENTITY(1,1) NOT NULL,
OrderDate DATETIME NOT NULL,
OrderFreight MONEY NULL,
ProductID INT NULL,
CONSTRAINT PK_Orders PRIMARY KEY CLUSTERED (OrderID ASC, OrderDate ASC)
ON [PRIMARY]
) ON [PRIMARY]
GO
می‌توانید به شکل زیر محتوای جدول که در فایل گروپ PRIMARY قرار گرفته را در سایر پارتیشن‌ها قرار داد.
 ALTER TABLE Orders DROP CONSTRAINT PK_Orders
 WITH (MOVE TO psOrderDateRange (OrderDate))
 Go
نظرات مطالب
استفاده از افزونه‌ی jsTree در ASP.NET MVC
با سلام
من دارم از همین jstree مثال شما استفاده میکنم.
و json زیر رو هم به سمت کلاینت برمیگردونم به صورت صحیح :
[{"id":"OrganizationTree","text":"ساختار سازمانی","icon":"/Content/images/tree_icon.png","state":{"opened":true,"disabled":false,"selected":false},"children":[{"id":"2","text":"آنات","icon":"/Content/images/nuclear.png","state":{"opened":true,"disabled":false,"selected":false},"children":[{"id":"4","text":"آموزش","icon":"/Content/images/nuclear.png","state":{"opened":true,"disabled":false,"selected":false},"children":[],"li_attr":{"data":null},"a_attr":{"href":null}},{"id":"5","text":"هیات مدیره","icon":"/Content/images/nuclear.png","state":{"opened":true,"disabled":false,"selected":false},"children":[],"li_attr":{"data":null},"a_attr":{"href":null}}],"li_attr":{"data":null},"a_attr":{"href":null}},{"id":"1","text":"پرنیان","icon":"/Content/images/nuclear.png","state":{"opened":true,"disabled":false,"selected":false},"children":[{"id":"1","text":"BPM","icon":"/Content/images/nuclear.png","state":{"opened":true,"disabled":false,"selected":false},"children":[],"li_attr":{"data":null},"a_attr":{"href":null}},{"id":"3","text":"پشتیبانی","icon":"/Content/images/nuclear.png","state":{"opened":true,"disabled":false,"selected":false},"children":[],"li_attr":{"data":null},"a_attr":{"href":null}},{"id":"2","text":"فروش","icon":"/Content/images/nuclear.png","state":{"opened":true,"disabled":false,"selected":false},"children":[],"li_attr":{"data":null},"a_attr":{"href":null}}],"li_attr":{"data":null},"a_attr":{"href":null}}],"li_attr":{"data":null},"a_attr":{"href":null}}]
منتهی همش خطای too much recursion  میگیرم، در صورتی که حلقه ای رو هم نمی‌بینم که ایجاد شده باشه داخل رشته json تولید شده.

اینهم تنظیمات فراخوانی 

 <script>
            $(function () {
                $('#jstree').jstree({
                    "core": {
                        "multiple": true,
                        "check_callback": true,
                        'data': {
                            'url': '@getTreeJsonUrl',
                            "type": "POST",
                            "dataType": "json",
                            "contentType": "application/json; charset=utf8",
                            'data': function (node) {
                                return { 'id': node.id };
                            }
                        },
                        'themes': {
                            'variant': 'large',
                            'stripes': false
                        }
                    },
                    "types": {
                        "default": {
                            "icon": '@Url.Content("~/Content/images/bookmark_book_open.png")'
                        },
                    },
                    "plugins": ["contextmenu", "dnd", "state", "types", "checkbox", "wholerow", "sort", "unique", "real_checkboxes"],
                    "contextmenu": {
                        "items": function (o, cb) {
                            var items = $.jstree.defaults.contextmenu.items();
                            items["create"].label = "ایجاد زیر شاخه";
                            items["rename"].label = "تغییر نام";
                            items["remove"].label = "حذف";
                            var cpp = items["ccp"];
                            cpp.label = "ویرایش";
                            var subMenu = cpp["submenu"];
                            subMenu["copy"].label = "کپی";
                            subMenu["paste"].label = "پیست";
                            subMenu["cut"].label = "برش";
                            return items;
                        }
                    }
                });
            });
        </script>

فکر میکنین مشکل از کجا باشه؟

جالب اینجاست که اگه فقط یه سطح پایین برم مشکلی نیست!

نظرات مطالب
افزودن خودکار کلاس‌های تنظیمات نگاشت‌ها در EF Code first
از AppDomain برای یافتن اسمبلی مدنظر استفاده کنید:
  var enumerable = AppDomain.CurrentDomain.GetAssemblies()
        .SelectMany(assembly => assembly.GetTypes())
        .Select(type => type.Namespace)
        .Distinct()
        .Where(name => name != null &&
                       name == "DomainClasses.Mappings");
نظرات مطالب
یافتن مقادیر نال در Entity framework
خروجی SQL شما منطبق با خروجی SQL حاصل از EF نیست. روش کار را اینجا توضیح دادم که چگونه می‌شود این خروجی را دقیقا به دست آورد.
در حالت
var list1 = ctx.Users.Where(x => x.Name != null).ToList();
این خروجی حاصل می‌شود:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Age] AS [Age]
FROM [dbo].[People] AS [Extent1]
WHERE [Extent1].[Name] IS NOT NULL
در حالت
var list2 = ctx.Users.Where(x => x.Name == null).ToList();
دقیقا این خروجی را خواهیم داشت:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Age] AS [Age]
FROM [dbo].[People] AS [Extent1]
WHERE [Extent1].[Name] IS NULL

پاسخ به بازخورد‌های پروژه‌ها
غیر فعال کردن دکمه پرینت یا saveas
ممنون از راهنمایی شما
حدس میزدم Encrypt  باشه
تو ITextSharp از کد زیر استفاده میشه:
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
writer.SetEncryption(null, encoding.GetBytes("12345678"), PdfWriter.ALLOW_COPY, PdfWriter.STRENGTH40BITS);
با تشکر
بازخوردهای پروژه‌ها
خطا در متد های Async
برنامه با رسیدن به یکسری از متدهای EF که Async  می‌باشند مثل ToListAsync خطای Exception را  به صورت Null Exception صادر می‌کند که با دو روز سردرگمی متوجه شدم که از DNT Profiler  است و با uninstall کردن آن برنامه درست شد.
  
اشتراک‌ها
خلاصه‌ای از C# 7.1
var firstName = "David";
var lastName = "Pine";
var dateOfBirth = new Date(1984, 7, 7);

// C# 7.0, required "explicit names"
var person = (firstName: firstName, lastName: lastName, dateOfBirth: dateOfBirth);
person.firstName;   // "David"
person.lastName;    // "Pine"
person.dateOfBirth  // 7/7/1984

// C# 7.1, allows "inferred names"
person = (firstName, lastName, dateOfBirth);
person.firstName;   // "David"
person.lastName;    // "Pine"
person.dateOfBirth  // 7/7/1984
خلاصه‌ای از C# 7.1