اشتراک‌ها
نگاهی به تغییرات اخیر ASP.NET
Enums Support in ASP.NET MVC
Global Error Handling in ASP.NET Web API
Attribute Based Routing improvements
BSON Media-Type Formatter
ASP.NET Roadmap on Codeplex
ASP.NET Framework on Codeplex
BSON Spec 
نگاهی به تغییرات اخیر ASP.NET
نظرات مطالب
Static Reflection
سلام آقای نصیری
باز هم انگار در این پست مشکل اخیر من رو آموزش دادین.یه جورایی خیلی جالبه
من یه قطعه کد دیده بودم برای پیاده سازی INotifyPropertyChanged که در اینجا پرسیدم :
http://stackoverflow.com/questions/6829099/how-this-code-works-for-handling-inotifypropertychanged
البته آقای مارک گراول گفته که این روش سرعتش پایینه. البته من همچنان از کد خیلی سر در نیاوردم. یعنی سلسله مراتبی که انجام داده رو متوجه نمیشم از کجا نشات میگیره

ممنون و موفق باشی
نظرات مطالب
React 16x - قسمت 26 - احراز هویت و اعتبارسنجی کاربران - بخش 1 - ثبت نام و ورود به سیستم
آیا زمان ثبت نام در سمت سرور نباید هم access_token و هم refresh_token رو تولید و به سمت کلاینت ارسال کرد؟
با بررسی کدهای مربوط به backend این سری و مبحث مربوط به اعتبارسنجی مبتنی بر JWT در ASP.NET Core 2.0 بدون استفاده از سیستم Identity  عملیات ثبت نام رو به صورت زیر پیاده سازی کردم.
//do register action and send sms message to client
//then call activateRegisterCode action from client to server
//In the following run operation authentication for user
 [AllowAnonymous]
        [HttpPost("[action]")]
        [IgnoreAntiforgeryToken]
        public async Task<IActionResult> ActivateRegisterCode([FromBody] ActiveCodeModel model)
        {
            if (model == null)
            { return BadRequest("درخواست نامعتبر"); }

            var user = await _userService.FindUserByKeyCodeAsync(model.Keycode);
            if (user == null)
            {
                return BadRequest("کد امنیتی معتبر نیست لطفا مجددا درخواست کد امنیتی کنید");
            }

            user.IsActive = true;
            var userUpdated = await _userService.UpdateAsync(user, CancellationToken.None);
            var jwt = await _tokenFactoryService.CreateJwtTokensAsync(userUpdated);

            this.Response.Headers.Add("x-auth-token", jwt.AccessToken);
            this.Response.Headers.Add("access-control-expose-headers", "x-auth-token");
            _antiforgery.RegeneratedAntiForgeryCookie(jwt.Claims);
            return Ok();


        }
در ادامه پیاده سازی action logout  برای حذف توکن‌ها از دیتابیس
 [AllowAnonymous]
        [HttpGet("[action]"), HttpPost("[action]")]
        public async Task<bool> Logout(string refreshtoken)
        {
            var claimsIdentity = this.User.Identity as ClaimsIdentity;
            var userIdValue = claimsIdentity.FindFirst(ClaimTypes.UserData)?.Value;

            if (!string.IsNullOrWhiteSpace(userIdValue) && Guid.TryParse(userIdValue, out Guid userId))
            {
                await _tokenStoreService.InvalidateUserTokensAsync(userId).ConfigureAwait(false);
            }
            await _tokenStoreService.DeleteExpiredTokensAsync().ConfigureAwait(false);
            await _uow.SaveChangesAsync().ConfigureAwait(false);
            _antiforgery.DeleteAntiForgeryCookie();
            return true;
        }
مشکلی که هست تو اکشن logout شی userIdValue خالیه و بنظر میرسه که کوکی مقدار نداره!
آیا باید زمان فراخوانی این اکشن refreshtoken رو هم بهش ارسال کنیم؟
تو اکشن لاگین هم کوکی‌ها مقدار نمیگیره یا اینکه اصلا با کوکی‌ها کار نداریم و بر اساس refreshtoken باید مقادیر claim‌های داخلش رو decode و بررسی کرد و سپس بر اساس اون در بانک اطلاعاتی عملیات خذف توکن‌های صادر شده در زمان ثبت نام و یا لاگین رو انجام داد.
اشتراک‌ها
آموزش JavaScript توسط Bob Tabor

NOTE: This popular course was recently updated with all new videos and content. Check it out!

01 | IntroductionGet an introduction from Bob, as he kicks off the course, sets expectations, and gives you a little guidance for the road ahead.

02 | Setting Up the Development Environment

03 | Basic JavaScript Syntax

04 | Variables

05 | Data Types

06 | Type Coercion and Conversion

07 | Expressions and Operators

08 | Arrays

09 | Function Declaration

10 | Function Expressions

11 | Decision Statements

12 | Iteration Statements

13 | Basics of Scope

14 | Returning Functions from Functions

15 | Object Literals

16 | Module Pattern and Revealing Module Pattern

17 | Closures

18 | this Keyword

19 | Destructuring

20 | String Template Literals

21 | Regular Expressions

22 | Built-In Natives

23 | Constructor Function Calls with the new Keyword

24 | Objects and the Prototype Chain

25 | JavaScript Classes

26 | Arrow Functions

27 | Truthy and Falsy Values

28 | null Type

29 | Date Objects

30 | String Methods

31 | Array Methods

32 | Error Handling with Try Catch

33 | Understanding the Document Object Model

34 | Working with DOM Nodes

35 | Course Conclusion 

آموزش JavaScript توسط Bob Tabor
اشتراک‌ها
تغییرات ASP.NET Core در NET 7 Preview 5.

Here’s a summary of what’s new in this preview release:

  • JWT authentication improvements & automatic authentication configuration
  • Minimal API’s parameter binding support for argument list simplification 
تغییرات ASP.NET Core در NET 7 Preview 5.
اشتراک‌ها
یک پروژه برای ادغام کدهای JWT Web Api و احراز هویت با refresh token , access token در پروژه WASM

در این پروژه از کدهای که قبلا در این سایت انتشار یافته بود استفاده شده است و کمی تغییرات و سفارشی نمودن کدها به یک مثال کامل از احراز هویت کاربران در سمت سرویس دهنده با استفاده از JWT Web Api و در سمت کلاینت از Blazor Client Side(WASM) استفاده شده است.

در ضمن این پروژه با دات نت 6 بروزرسانی شده است

یک پروژه برای ادغام کدهای JWT Web Api و احراز هویت با refresh token , access token در پروژه WASM