‫۶ سال و ۴ ماه قبل، چهارشنبه ۱۲ اردیبهشت ۱۳۹۷، ساعت ۰۷:۱۵
با سلام؛ من از روش فوق برای «اعتبارسنجی مبتنی بر کوکی‌ها در ASP.NET Core 2.0 بدون استفاده از سیستم Identity»استفاده کردم. زمانیکه از کد زیر  استفاده میکنم، مقدارنال رو بر میگرداند. آیا تنظیمات خاصی رو از قلم انداختم. با تشکر
var userId = user.Identity.GetUserFirstName();
‫۶ سال و ۴ ماه قبل، دوشنبه ۱۰ اردیبهشت ۱۳۹۷، ساعت ۲۱:۰۲
با سلام؛ آیا امکان دارد StructureMap را در یک کلاس دیگر بکار برد و در ConfigureServices  بصورت  services اضافه کرد و متد ConfigurationServices مقدار  Void را برگرداند؟ زیرا در تمامی مقاله‌های مطالعه شده همین روش بکار رفته. با تشکر
با تشکر
 از این مقاله ارتقاء به ASP.NET Core 1.0 - قسمت 6 - سرویس‌ها و تزریق وابستگی‌ها که مربوط به  یک سال پیش می‌باشد کمک گرفتم برای جایگزینی استراکچرمپ. که مزایای استراکچرمپ نسبت به سیستم توکارASP.NET Core پرداخت شده است.
تشکر میکنم؛ مشکل حل شد. من از StructureMap استفاده کرده بودم. احیانا مشکل از اونجا بود. من از این لینک این و یا این برای بازنویسی استفاده می‌کنم که وقت اجرا خطا میداد و بانک Initialize نمیشد ونال برگشت میداد.
 public IServiceProvider ConfigureServices(IServiceCollection services)
        {
           // services.AddScoped<IUnitOfWork, ApplicationDbContext>();
            //services.AddScoped<IUsersService, UsersService>();
            //services.AddScoped<IRolesService, RolesService>();
            //services.AddScoped<ISecurityService, SecurityService>();

            //services.AddScoped<ICookieValidatorService, CookieValidatorService>();
            //services.AddScoped<IDbInitializerService, DbInitializerService>();
            var container = new Container();
            container.Configure(config =>
 {
                config.AddRegistry(new MyStructuremapRegistry());
                config.Populate(services);

            });

           services.AddDbContext<ApplicationDbContext>(options =>
            {
              options.UseSqlServer(
              Configuration.GetConnectionString("DefaultConnection"),
                serverDbContextOptionsBuilder =>  {

                        var minutes = (int)TimeSpan.FromMinutes(3).TotalSeconds;
                        serverDbContextOptionsBuilder.CommandTimeout(minutes);
                        serverDbContextOptionsBuilder.EnableRetryOnFailure();

                    });
            });

            // Only needed for custom roles.
            services.AddAuthorization(options =>
           {
                options.AddPolicy(CustomRoles.Admin, policy => policy.RequireRole(CustomRoles.Admin));
                options.AddPolicy(CustomRoles.User, policy => policy.RequireRole(CustomRoles.User));
            });
            // Needed for cookie auth.
           services
                .AddAuthentication(options =>
                {
                   options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                   options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                })
                .AddCookie(options =>
                {
                    options.SlidingExpiration = false;
                    options.LoginPath = "/api/account/login";
                    options.LogoutPath = "/api/account/logout";
                    //options.AccessDeniedPath = new PathString("/Home/Forbidden/");
                    options.Cookie.Name = ".my.app1.cookie";
                    options.Cookie.HttpOnly = true;
                    options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
                    options.Cookie.SameSite = SameSiteMode.Lax;
                    options.Events = new CookieAuthenticationEvents
                    {
                        OnValidatePrincipal = context =>
                        {
                        var cookieValidatorService = context.HttpContext.RequestServices.GetRequiredService<ICookieValidatorService>();

                        return cookieValidatorService.ValidateAsync(context);
                        }

                    };

                });
            services.AddCors(options =>
            {
               options.AddPolicy("CorsPolicy",
                    builder => builder
                        .AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        .AllowCredentials());

            });
            services.AddMvc();
            return container.GetInstance<IServiceProvider>();
        }
ممنون. با بررسی‌های که کردم متوجه شدم مشکل از این خط کد هست، ولی نتونستم رفعش کنم. آیا جایی را از قلم انداختم برای پیاده سازی؟ با تشکر
  await HttpContext.SignInAsync(
                CookieAuthenticationDefaults.AuthenticationScheme,
                 cookieClaims,
                new AuthenticationProperties
                {
                    IsPersistent =false, // "Remember Me"
                    IssuedUtc = DateTimeOffset.UtcNow,
                    ExpiresUtc = DateTimeOffset.UtcNow.AddDays(loginCookieExpirationDays)
                });

InvalidOperationException: No IAuthenticationSignInHandler is configured to handle sign in for the scheme: Cookies

‫۸ سال و ۸ ماه قبل، دوشنبه ۲۸ دی ۱۳۹۴، ساعت ۲۰:۳۱
با سلام
آیا روشی وجود دارد که  هنگام حذف رکود  یه پیام سفارشی رو  نشان بده به همراه یکی از مقادیر رکوردی رو که میخواهد حذف کنه: به  عنوان مثال:
 "ایا شما مایل به حذف این رکورد هستید:"+  مقدار یکی از ستون‌های جدول
 2- بجای پنجره حذف رکورد گرید یه پنچره سفارشی دیگه نشون بدیم
‫۸ سال و ۱۱ ماه قبل، دوشنبه ۱۱ آبان ۱۳۹۴، ساعت ۱۹:۴۲
با سلام؛
۱- مفهوم این عبارت رو لطفا توضیح بدید:
«در متد addComment وقتی که دیدگاه مورد نظر اضافه شد، به آرایه‌ی کامنت‌ها یک کامنت جدید می‌افزاییم و چون انقیاد داده دو طرفه است، بالافاصله دیدگاه جدید نیز در view به نمایش در می‌آید.»
این بلافاصله نشون میده از چی استفاده میکنه؟

۲- من تابع  Remvoe رو نوشتم ولی کار نمی‌کنه. یه تغییراتی دادم که آیدی رو  درست بفرست ولی به تابع اصلا وارد نمیشه.
    <button type="button" style="float:right;cursor:pointer;" ng-click="remove({{comment.id}},$Index);">X</button>
خطا :
"Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 9 of the expression [remove({{comment.id}},$Index);] starting at [{comment.id}},$Index);].
‫۸ سال و ۱۱ ماه قبل، یکشنبه ۳ آبان ۱۳۹۴، ساعت ۱۷:۵۷
با سلام و تشکر از شما
هنگام استفاده از  custom paging  صفحه بندی مربوط به خود webgrid رو هم نشون میده که با غیر فعال کردن آن canpage=false  کلا صفحه بندی غیر فعال می‌شود.