نیازی به درج آن به صورت جداگانه نیست (البته بحث تطابق Id دریافتی از توکن (و نه view-model البته)، با Id جاری شخص باید صورت گیرد). چون زمانیکه توکن را تولید میکنید،
Id کاربر لاگین شدهی به سیستم هم در آن توکن به صورت یک ClaimTypes.NameIdentifier وجود دارد و پس از اعتبارسنجی درخواست با ارسال توکن به سمت سرور، جزئی از
HttpContext.User.Identity as ClaimsIdentity استاندارد میشود. این اطلاعات هم توسط کاربر قابل تغییر و دستکاری نیست؛ حتی اگر توکن رمزنگاری هم نشده باشد. مرحلهی اعتبارسنجی توکن که رخ میدهد، یکی از کارهای آن، بررسی امضای دیجیتال توکن دریافتی از سمت کاربر هست. به همین جهت توکن دستکاری شده، هیچگاه به مرحلهی تولید و لحاظ شدن در HttpContext.User.Identity نمیرسد.
بنابراین آیا باید به Id کاربر ارسالی توسط view-model اطمینان کرد؟ خیر. این Id کاربر اصلا نباید در view-model وجود داشته باشد. از id موجود در خود توکن برای تشخیص کاربر استفاده کنید. این Id پس از تعیین اعتبار توکن، معتبر است و نیاز به بررسی و لایههای بیشتری ندارد.
برای ویرایش یک رکورد، ابتدا UserId اصلی آنرا استخراج کنید. بعد این UserId ردیف بانک اطلاعاتی را با مقدار
ClaimTypes.NameIdentifier استخراجی از توکن دریافتی از کاربر، تطابق دهید؛ اگر یکی نبودند، یعنی این رکورد متعلق به کاربر جاری لاگین شدهی به سیستم نیست و حق ویرایش آنرا ندارد (البته اگر آن کاربر ادمین نیست).