DefaultCredentials ورود ویندوز شما را به یک رمز Basic تبدیل نمیکند
زمینه امنیتی پیشفرض .NET را با طرح احراز هویت پروکسی هماهنگ کنید، بهجای اینکه انتظار داشته باشید حساب Basic ذخیرهشده در مرورگر بهطور خودکار ظاهر شود.
مرورگر یک حساب پروکسی را به یاد میآورد. کلاینت .NET شما از CredentialCache.DefaultCredentials استفاده میکند و 407 را بدون تلاش دوبارهای که انتظار داشتید دریافت میکند. این دو واقعیت با هم سازگارند.
DefaultCredentials زمینه امنیتی فعلی را برای احراز هویت یکپارچه پشتیبانیشده نشان میدهد. مایکروسافت کاربرد آن را برای NTLM، Negotiate و Kerberos مستند کرده است. این درخواستی برای استخراج نام کاربری و رمز عبور متن ساده از ورودهای ذخیرهشده در مرورگر نیست.
اگر پروکسی Basic ارائه میدهد و حساب جداگانهای میخواهد، آن حساب را از طریق رابط اعتبارنامه پروکسی که کلاینت پشتیبانی میکند پیکربندی کنید. یک NetworkCredential صریح و زمینه امنیتی فعلی ویندوز ورودیهای متفاوتی هستند.
پیش از تغییر رمز عبور، چالش اعلامشده را بررسی کنید. همچنین بررسی کنید که کدام زمینه کاربر برنامه را اجرا میکند. یک فایل اجرایی رومیزی و یک سرویس میتوانند حتی وقتی روی یک رایانه اجرا میشوند هویتهای متفاوتی داشته باشند.
دلیلی برای کپی کردن حساب در ویژگی اعتبارنامه مقصد هم وجود ندارد. ورود واسط را نزد واسط نگه دارید. تشخیص مفید سه چیز را نام میبرد: پروکسی انتخابشده، طرحی که درخواست میکند و نوع اعتبارنامهای که برنامه واقعاً ارائه کرده است.