سطح: متوسط  |  مناسب برای: مدیران ویندوز سرور، مدیران IIS، توسعه‌دهندگان ASP.NET، کاربران هاست ویندوز، مدیران Plesk و افرادی که با ViewState، Forms Authentication، Session و تنظیمات امنیتی ASP.NET سروکار دارند

اگر سایت یا اپلیکیشن شما با ASP.NET روی IIS اجرا می‌شود، احتمالاً با مفهومی به نام Machine Key روبه‌رو شده‌اید. Machine Key یکی از تنظیمات مهم در ASP.NET است که برای اعتبارسنجی و رمزنگاری داده‌هایی مثل ViewState، کوکی‌های احراز هویت، Forms Authentication و برخی داده‌های حساس برنامه استفاده می‌شود.

در حالت ساده، ASP.NET می‌تواند Machine Key را به‌صورت خودکار تولید کند. اما در بعضی سناریوها، مخصوصاً زمانی که سایت روی چند سرور اجرا می‌شود، در Web Farm قرار دارد، پشت Load Balancer است، یا نیاز دارید Session و Authentication بین چند سرور پایدار بماند، باید Machine Key را به‌صورت ثابت و یکسان تنظیم کنید.

در این مقاله توضیح می‌دهیم Machine Key در IIS چیست، Validation Key و Decryption Key چه کاربردی دارند، چرا Machine Key برای ViewState و کوکی‌های احراز هویت مهم است، چه زمانی باید آن را دستی تنظیم کرد، چطور از طریق IIS Manager گزینه Generate Keys را اجرا کنیم و چه نکات امنیتی را هنگام ذخیره این کلیدها در فایل web.config باید رعایت کنیم.

اگر هنوز با ساختار IIS آشنا نیستید، پیشنهاد می‌کنیم مقاله آموزش ایجاد وب‌سایت به صورت دستی در IIS و مقاله IIS Application Pool چیست؟ را هم بخوانید. برای انتخاب زیرساخت مناسب اجرای سایت‌های ASP.NET نیز صفحه سرور مجازی و اختصاصی پویاسازان و صفحه هاست ویندوز پویاسازان می‌توانند مفید باشند.

فهرست مطالب

Machine Key چیست؟

Machine Key بخشی از تنظیمات ASP.NET است که مشخص می‌کند برنامه برای اعتبارسنجی و رمزنگاری برخی داده‌های حساس از چه کلیدها و الگوریتم‌هایی استفاده کند. این تنظیمات معمولاً داخل فایل web.config یا در سطح بالاتر داخل تنظیمات ماشین تعریف می‌شوند.

Machine Key معمولاً شامل چند بخش اصلی است:

  • Validation Key: برای اعتبارسنجی و تشخیص دستکاری داده‌ها
  • Decryption Key: برای رمزنگاری و رمزگشایی داده‌ها
  • Validation Algorithm: الگوریتم مورد استفاده برای تولید HMAC یا اعتبارسنجی
  • Decryption Algorithm: الگوریتم مورد استفاده برای رمزنگاری و رمزگشایی

در مستندات Microsoft توضیح داده شده که بخش machineKey در ASP.NET کنترل‌کننده کلیدها و الگوریتم‌هایی است که برای Forms Authentication، اعتبارسنجی ViewState و جداسازی Session State در برنامه استفاده می‌شوند. منبع: Microsoft MachineKeySection

چرا Machine Key در ASP.NET مهم است؟

Machine Key در ظاهر فقط یک تنظیم فنی در IIS و ASP.NET است، اما روی امنیت و پایداری برنامه تأثیر مستقیم دارد. اگر این کلیدها درست تنظیم نشده باشند، ممکن است کاربران از سایت خارج شوند، ViewState خطا بدهد، فرم‌ها به‌درستی کار نکنند یا در محیط چندسروری، درخواست‌های کاربران بین سرورها دچار مشکل شود.

کاربردهای مهم Machine Key:

  • حفاظت از ViewState در ASP.NET Web Forms
  • اعتبارسنجی داده‌هایی که بین مرورگر و سرور رد و بدل می‌شوند
  • رمزنگاری یا رمزگشایی داده‌های مرتبط با Forms Authentication
  • پایدار نگه داشتن کوکی‌های احراز هویت در چند سرور
  • جلوگیری از دستکاری داده‌های سمت کلاینت
  • هماهنگی بین چند سرور در Web Farm

در مقاله قبلی هم به این نکته اشاره شده بود که Machine Key برای حفاظت از ViewState و کوکی‌های احراز هویت استفاده می‌شود و دو کلید اصلی Validation و Decryption در آن نقش دارند.

Validation Key چیست؟

Validation Key کلیدی است که ASP.NET برای اعتبارسنجی داده‌ها استفاده می‌کند. هدف این کلید این است که مشخص شود داده‌ای که از سمت کاربر برگشته، در مسیر تغییر نکرده یا دستکاری نشده است.

برای مثال، در ASP.NET Web Forms، داده‌های ViewState در صفحه ذخیره و بعداً همراه درخواست کاربر به سرور برگردانده می‌شوند. ASP.NET با کمک Validation Key می‌تواند بررسی کند که این داده‌ها همان چیزی هستند که قبلاً تولید شده‌اند یا کسی آن‌ها را تغییر داده است.

این اعتبارسنجی معمولاً با مفهوم MAC یا Message Authentication Code انجام می‌شود. MAC کمک می‌کند سرور مطمئن شود داده‌های دریافت‌شده معتبر و دستکاری‌نشده هستند.

Decryption Key چیست؟

Decryption Key برای رمزنگاری و رمزگشایی داده‌هایی استفاده می‌شود که ASP.NET لازم دارد آن‌ها را امن‌تر نگه دارد. این کلید در سناریوهایی مثل Forms Authentication، برخی تنظیمات ViewState و داده‌های رمزنگاری‌شده کاربرد دارد.

Microsoft توضیح می‌دهد که DecryptionKey برای encryption و decryption استفاده می‌شود؛ از جمله در Forms Authentication و ViewState زمانی که تنظیمات رمزنگاری فعال باشد. منبع: Microsoft DecryptionKey

اگر Decryption Key بین چند سرور یکسان نباشد، ممکن است سروری که درخواست دوم کاربر را دریافت می‌کند نتواند داده‌ای را که سرور اول تولید کرده رمزگشایی کند. نتیجه می‌تواند خروج ناگهانی کاربر از سایت، خطا در فرم‌ها یا مشکل در احراز هویت باشد.

نقش Machine Key در ViewState

ViewState یکی از قابلیت‌های ASP.NET Web Forms است که وضعیت کنترل‌های صفحه را بین Postbackها نگه می‌دارد. چون ViewState معمولاً به‌صورت داده‌ای در صفحه HTML قرار می‌گیرد و دوباره به سرور برمی‌گردد، باید مطمئن شویم کاربر یا مهاجم آن را دستکاری نکرده است.

Machine Key در اینجا نقش مهمی دارد. ASP.NET با کمک Validation Key برای ViewState یک امضای اعتبارسنجی ایجاد می‌کند. وقتی صفحه دوباره ارسال می‌شود، ASP.NET این امضا را بررسی می‌کند تا مطمئن شود ViewState تغییر نکرده است.

اگر Machine Key تغییر کند یا بین چند سرور متفاوت باشد، ممکن است خطاهایی مثل invalid ViewState یا Validation of viewstate MAC failed رخ دهد.

نقش Machine Key در Forms Authentication

در بسیاری از برنامه‌های ASP.NET قدیمی‌تر، احراز هویت کاربران با Forms Authentication انجام می‌شود. در این روش، بعد از ورود کاربر، یک authentication ticket ساخته و معمولاً داخل کوکی ذخیره می‌شود.

Machine Key برای امضا و در صورت نیاز رمزنگاری این ticket استفاده می‌شود. اگر کلیدها تغییر کنند، ASP.NET ممکن است نتواند کوکی قبلی کاربر را معتبر تشخیص دهد؛ در نتیجه کاربر از سایت خارج می‌شود یا نیاز به ورود مجدد پیدا می‌کند.

اگر چند سایت یا چند اپلیکیشن ASP.NET قرار است کوکی احراز هویت مشترک داشته باشند، تنظیم Machine Key یکسان بین آن‌ها اهمیت زیادی دارد. Microsoft نیز در مستندات Forms Authentication توضیح می‌دهد که برای اشتراک authentication ticket بین برنامه‌ها، مقادیر validationKey و decryptionKey و الگوریتم‌ها باید یکسان باشند. منبع: Microsoft Forms Authentication Across Applications

AutoGenerate در Machine Key یعنی چه؟

در حالت پیش‌فرض، ASP.NET می‌تواند Machine Key را به‌صورت خودکار تولید کند. این حالت برای سایت‌هایی که فقط روی یک سرور اجرا می‌شوند، در بسیاری از موارد کافی است.

اما AutoGenerate یک محدودیت مهم دارد: کلید تولیدشده معمولاً به همان ماشین وابسته است. یعنی اگر سایت را روی چند سرور اجرا کنید، هر سرور ممکن است Machine Key متفاوتی داشته باشد. در این حالت، داده‌هایی که یک سرور تولید کرده ممکن است توسط سرور دیگر قابل اعتبارسنجی یا رمزگشایی نباشد.

به همین دلیل در Web Farm، Load Balancer یا محیط‌هایی که چند IIS یک اپلیکیشن را سرو می‌کنند، نباید به AutoGenerate تکیه کنید. در چنین شرایطی باید Machine Key را دستی و یکسان روی همه سرورها تنظیم کنید.

چه زمانی باید Machine Key را دستی تنظیم کنیم؟

در همه سایت‌ها لازم نیست Machine Key را دستی تنظیم کنید. اما در سناریوهای زیر تنظیم دستی آن توصیه یا حتی ضروری است:

  • سایت روی چند سرور IIS اجرا می‌شود.
  • از Load Balancer یا Web Farm استفاده می‌کنید.
  • کاربران بعد از جابه‌جایی بین سرورها از سایت خارج می‌شوند.
  • خطای ViewState MAC یا invalid ViewState دارید.
  • چند اپلیکیشن ASP.NET باید کوکی احراز هویت مشترک داشته باشند.
  • برنامه بعد از recycle یا deploy رفتار ناپایدار نشان می‌دهد.
  • می‌خواهید کلیدها را مستند، کنترل‌شده و قابل تکرار نگه دارید.

اگر فقط یک سایت ساده روی یک سرور دارید، حالت AutoGenerate ممکن است مشکلی ایجاد نکند. اما برای اپلیکیشن‌های جدی‌تر، مخصوصاً ASP.NET Web Forms و Forms Authentication، تنظیم دقیق Machine Key اهمیت بیشتری پیدا می‌کند.

Machine Key در Web Farm و Load Balancer

در Web Farm، چند سرور IIS پشت یک Load Balancer قرار می‌گیرند و همه آن‌ها یک اپلیکیشن را سرو می‌کنند. در چنین ساختاری، ممکن است درخواست اول کاربر به سرور اول و درخواست بعدی او به سرور دوم برسد.

اگر Machine Key روی این سرورها متفاوت باشد، مشکلاتی مثل این رخ می‌دهد:

  • کاربر به‌صورت ناگهانی logout می‌شود.
  • ViewState بین درخواست‌ها معتبر تشخیص داده نمی‌شود.
  • Forms Authentication ticket روی سرور دوم قابل خواندن نیست.
  • خطاهای تصادفی و سخت‌ردیابی در فرم‌ها رخ می‌دهد.

برای جلوگیری از این مشکل، باید مقدار validationKey، decryptionKey، validation و decryption روی همه سرورها دقیقاً یکسان باشد. Microsoft نیز توضیح می‌دهد که در Web Farm، مقدارهای DecryptionKey و ValidationKey باید صریح، معتبر و یکسان پیکربندی شوند و AutoGenerate برای چند سرور مناسب نیست. منبع: Microsoft MachineKeySection

مرحله ۱: باز کردن IIS Manager

برای تنظیم Machine Key از طریق رابط گرافیکی، ابتدا باید وارد IIS Manager شوید.

  1. با دسترسی Administrator وارد ویندوز سرور شوید.
  2. کلیدهای Win + R را بزنید.
  3. دستور زیر را وارد کنید:
inetmgr
  1. کلید Enter را بزنید تا IIS Manager باز شود.

اگر IIS Manager باز نشد، ممکن است نقش IIS یا ابزارهای مدیریتی آن روی سرور نصب نباشد. در این صورت باید از Server Manager، نقش Web Server IIS و Management Tools را نصب کنید.

مرحله ۲: ورود به بخش Machine Key در IIS

بعد از باز شدن IIS Manager، باید سطحی را انتخاب کنید که می‌خواهید Machine Key روی آن اعمال شود.

سه سطح رایج:

  • Server Level: اعمال تنظیمات در سطح کل سرور
  • Site Level: اعمال تنظیمات برای یک سایت خاص
  • Application Level: اعمال تنظیمات برای یک اپلیکیشن خاص داخل سایت

برای بیشتر سناریوها، بهتر است تنظیم را در سطح همان سایت یا اپلیکیشن انجام دهید، نه کل سرور؛ مگر اینکه دقیقاً بدانید می‌خواهید همه اپلیکیشن‌ها از یک تنظیم مشترک استفاده کنند.

  1. در IIS Manager، سایت یا اپلیکیشن موردنظر را انتخاب کنید.
  2. در بخش Features View، آیکن Machine Key را پیدا کنید.
  3. روی Machine Key دوبار کلیک کنید.

در مقاله قبلی نیز همین مسیر توضیح داده شده بود؛ یعنی باز کردن IIS Manager، انتخاب آیکن Machine Key و ورود به صفحه تنظیمات آن.

مرحله ۳: Generate Keys در IIS Manager

بعد از ورود به صفحه Machine Key، معمولاً گزینه‌هایی برای انتخاب الگوریتم‌ها و تولید کلیدها می‌بینید.

مراحل کلی:

  1. در بخش Validation Method الگوریتم اعتبارسنجی را انتخاب کنید.
  2. در بخش Encryption Method الگوریتم رمزنگاری را انتخاب کنید.
  3. در صورت نیاز، گزینه‌های مربوط به AutoGenerate را غیرفعال کنید.
  4. روی گزینه Generate Keys کلیک کنید.
  5. بعد از تولید کلیدها، روی Apply کلیک کنید.

برای بسیاری از سناریوهای جدیدتر، بهتر است از الگوریتم‌های امن‌تر و به‌روزتر استفاده شود و از گزینه‌های قدیمی مثل MD5 و SHA1 فقط برای سازگاری با برنامه‌های قدیمی استفاده کنید. Microsoft در مستندات MachineKeyValidation توضیح می‌دهد که مقدارهایی مثل MD5، SHA1 و 3DES legacy محسوب می‌شوند و HMACSHA256 مقدار پیش‌فرض جدیدتر است. منبع: Microsoft MachineKeyValidation

مرحله ۴: بررسی تگ machineKey در web.config

بعد از Apply کردن تنظیمات، IIS معمولاً یک تگ machineKey داخل فایل web.config برنامه ایجاد یا به‌روزرسانی می‌کند.

نمونه ساختار کلی:

<configuration>
  <system.web>
    <machineKey
      validationKey="..."
      decryptionKey="..."
      validation="HMACSHA256"
      decryption="AES" />
  </system.web>
</configuration>

در این ساختار:

  • validationKey برای اعتبارسنجی داده‌ها استفاده می‌شود.
  • decryptionKey برای رمزنگاری و رمزگشایی داده‌ها استفاده می‌شود.
  • validation الگوریتم اعتبارسنجی را مشخص می‌کند.
  • decryption الگوریتم رمزنگاری را مشخص می‌کند.

اگر سایت شما در Web Farm اجرا می‌شود، باید همین تگ با همین مقادیر روی همه سرورها قرار بگیرد. هرگونه تفاوت در کلیدها یا الگوریتم‌ها می‌تواند باعث خطاهای احراز هویت یا ViewState شود.

انتخاب الگوریتم Validation و Decryption

در صفحه Machine Key ممکن است چند گزینه برای Validation و Decryption ببینید. انتخاب الگوریتم باید با نوع برنامه، نسخه .NET و نیازهای سازگاری آن هماهنگ باشد.

گزینهکاربردنکته
HMACSHA256اعتبارسنجی امن‌تر و رایج‌تر در نسخه‌های جدیدتربرای بیشتر سناریوهای جدید مناسب‌تر است
SHA1اعتبارسنجی در برنامه‌های قدیمی‌ترLegacy محسوب می‌شود و فقط برای سازگاری استفاده شود
MD5روش قدیمی اعتبارسنجیبرای کاربردهای جدید توصیه نمی‌شود
AESرمزنگاری داده‌هابرای بسیاری از سناریوها انتخاب مناسب‌تری است
3DESرمزنگاری قدیمی‌ترفقط برای سازگاری با سیستم‌های قدیمی استفاده شود

اگر یک برنامه قدیمی دارید، قبل از تغییر الگوریتم‌ها حتماً آن را در محیط تست بررسی کنید. تغییر Machine Key یا الگوریتم‌ها می‌تواند باعث invalid شدن کوکی‌های احراز هویت قبلی و خروج کاربران از سایت شود.

نکات امنیتی مهم درباره Machine Key

Machine Key را باید مثل یک Secret مهم در نظر بگیرید. اگر validationKey یا decryptionKey افشا شود، امنیت برنامه ASP.NET ممکن است به‌شدت آسیب ببیند.

نکات مهم امنیتی:

  • Machine Key را در مخزن عمومی Git یا فایل‌های قابل دانلود قرار ندهید.
  • به فایل web.config دسترسی عمومی ندهید.
  • کلیدها را فقط بین سرورهایی که واقعاً باید یکسان باشند به اشتراک بگذارید.
  • برای هر اپلیکیشن مهم، Machine Key مستقل داشته باشید.
  • از کلیدهای کوتاه، ساده یا قابل حدس استفاده نکنید.
  • در صورت افشای کلید، آن را rotate کنید؛ اما اثر آن روی session و authentication را در نظر بگیرید.
  • برای Web Farm، کلیدها را با فرآیند امن بین سرورها توزیع کنید.
  • اگر ممکن است، از Protected Configuration برای رمزنگاری بخش‌های حساس تنظیمات استفاده کنید.

Microsoft نیز در مستندات MachineKeySection توصیه می‌کند اگر کلیدها را در این بخش مشخص می‌کنید، مخصوصاً در سناریوهای Web Farm، بهتر است این بخش با protected configuration رمزنگاری شود. منبع: Microsoft MachineKeySection

برای امنیت کلی سرور و سایت، مطالب دسته امنیت سایت و سرور و دسته ویندوز و مدیریت سرور ویندوز را هم دنبال کنید.

خطاهای رایج مرتبط با Machine Key

خطای Validation of viewstate MAC failed

این خطا معمولاً زمانی رخ می‌دهد که ViewState برگشتی از کاربر با Machine Key فعلی قابل اعتبارسنجی نباشد. علت می‌تواند تغییر Machine Key، متفاوت بودن کلیدها بین سرورها یا مشکل در Web Farm باشد.

خروج ناگهانی کاربران از سایت

اگر Forms Authentication استفاده می‌کنید و Machine Key تغییر کند، کوکی‌های احراز هویت قبلی ممکن است دیگر معتبر نباشند. در نتیجه کاربران مجبور به ورود مجدد می‌شوند.

مشکل فقط پشت Load Balancer رخ می‌دهد

اگر سایت روی چند سرور است و فقط زمانی که Load Balancer فعال می‌شود خطا دارید، احتمالاً Machine Key روی سرورها یکسان نیست. کلیدها و الگوریتم‌ها را در همه سرورها مقایسه کنید.

فرم‌ها گاهی کار می‌کنند و گاهی خطا می‌دهند

این مشکل می‌تواند نشانه جابه‌جایی درخواست‌ها بین چند سرور با Machine Key متفاوت باشد. در این حالت، درخواست کاربر گاهی به سروری می‌رسد که نمی‌تواند ViewState یا کوکی تولیدشده توسط سرور دیگر را بخواند.

بعد از Deploy یا تغییر web.config کاربران logout شدند

اگر در Deploy جدید Machine Key تغییر کرده باشد، این رفتار طبیعی است. برای جلوگیری از این مشکل، Machine Key ثابت و کنترل‌شده داشته باشید.

چک‌لیست سریع تنظیم Machine Key در IIS

مرحلهوضعیت مطلوب
انتخاب سطح تنظیمسایت یا اپلیکیشن درست در IIS انتخاب شده باشد
باز کردن Machine Keyاز Features View در IIS Manager وارد Machine Key شوید
انتخاب الگوریتمValidation و Decryption متناسب با برنامه انتخاب شوند
Generate Keysکلیدهای Validation و Decryption تولید شوند
Applyتنظیمات ذخیره و در web.config ثبت شود
Web Farmکلیدها روی همه سرورها دقیقاً یکسان باشند
امنیتکلیدها محرمانه نگهداری شوند و در Git عمومی قرار نگیرند
تستورود کاربران، فرم‌ها، ViewState و Session تست شوند

اگر بعد از تنظیم Machine Key با خطاهای IIS، Application Pool یا تنظیمات سایت مواجه شدید، مقاله IIS Application Pool چیست؟ و مقاله رفع خطای 1053 در ویندوز سرور هم می‌توانند برای عیب‌یابی مکمل باشند.

جمع‌بندی

Machine Key یکی از تنظیمات مهم ASP.NET در IIS است که برای اعتبارسنجی و رمزنگاری داده‌هایی مثل ViewState، Forms Authentication و برخی کوکی‌های امنیتی استفاده می‌شود. این تنظیم شامل Validation Key، Decryption Key و الگوریتم‌های مربوط به اعتبارسنجی و رمزنگاری است.

در سایت‌هایی که فقط روی یک سرور اجرا می‌شوند، حالت AutoGenerate در بسیاری از موارد کافی است. اما اگر سایت روی چند سرور، Web Farm یا پشت Load Balancer اجرا می‌شود، باید Machine Key را به‌صورت ثابت و یکسان روی همه سرورها تنظیم کنید. در غیر این صورت ممکن است کاربران logout شوند، فرم‌ها خطا بدهند یا ViewState معتبر تشخیص داده نشود.

برای تنظیم Machine Key می‌توانید از IIS Manager وارد بخش Machine Key شوید، الگوریتم‌ها را انتخاب کنید، روی Generate Keys کلیک کنید و تنظیمات را Apply کنید. بعد از آن، تگ machineKey در فایل web.config ثبت می‌شود. این کلیدها را محرمانه نگه دارید و مانند رمزهای حساس با آن‌ها رفتار کنید.

سوالات متداول

Machine Key در IIS چیست؟

Machine Key تنظیمی در ASP.NET است که کلیدها و الگوریتم‌های مورد استفاده برای اعتبارسنجی و رمزنگاری داده‌هایی مثل ViewState و Forms Authentication را مشخص می‌کند.

Validation Key چه کاربردی دارد؟

Validation Key برای تشخیص دستکاری داده‌ها استفاده می‌شود. ASP.NET با کمک آن می‌تواند مطمئن شود داده‌هایی مثل ViewState تغییر نکرده‌اند.

Decryption Key چه کاربردی دارد؟

Decryption Key برای رمزنگاری و رمزگشایی داده‌ها استفاده می‌شود؛ از جمله در Forms Authentication و بعضی سناریوهای مرتبط با ViewState.

آیا همیشه باید Machine Key را دستی تنظیم کنیم؟

خیر. برای سایت‌های ساده روی یک سرور، حالت AutoGenerate ممکن است کافی باشد. اما برای Web Farm، Load Balancer یا چند سرور، باید Machine Key ثابت و یکسان تنظیم شود.

چرا در Web Farm باید Machine Key یکسان باشد؟

چون درخواست‌های کاربر ممکن است بین چند سرور جابه‌جا شود. اگر کلیدها متفاوت باشند، یک سرور نمی‌تواند ViewState یا کوکی تولیدشده توسط سرور دیگر را اعتبارسنجی یا رمزگشایی کند.

Machine Key در کجا ذخیره می‌شود؟

معمولاً داخل فایل web.config در بخش system.web و تگ machineKey ذخیره می‌شود. همچنین می‌تواند در سطح machine.config یا تنظیمات بالاتر تعریف شود.

Generate Keys در IIS چه کاری انجام می‌دهد؟

گزینه Generate Keys در IIS Manager مقدارهای تصادفی و مناسب برای Validation Key و Decryption Key تولید می‌کند و بعد از Apply، آن‌ها را در تنظیمات برنامه ثبت می‌کند.

آیا تغییر Machine Key کاربران را logout می‌کند؟

ممکن است بله. اگر Forms Authentication استفاده شود، تغییر Machine Key می‌تواند کوکی‌های قبلی کاربران را نامعتبر کند و کاربران مجبور به ورود مجدد شوند.

خطای Validation of viewstate MAC failed به Machine Key مربوط است؟

یکی از دلایل رایج این خطا، تغییر یا ناسازگاری Machine Key است؛ مخصوصاً در Web Farm یا زمانی که درخواست‌ها بین چند سرور جابه‌جا می‌شوند.

آیا Machine Key اطلاعات محرمانه محسوب می‌شود؟

بله. Validation Key و Decryption Key باید محرمانه نگه داشته شوند و نباید در مخزن عمومی، فایل قابل دانلود یا جایی که افراد غیرمجاز به آن دسترسی دارند قرار بگیرند.

آخرین به روز رسانی: 5 اردیبهشت 1405