Saya mencoba mengambil nama pengguna windows saat debugging di Visual Studio 2013. Saya hanya menggunakan:
httpcontext.current.user.identity.name
Jika saya menjalankan ini di Dev Server saya, ini berfungsi dengan baik, jika saya menjalankannya dalam mode debug pada versi Visual Studio sebelumnya, ini juga berfungsi dengan baik.
Masalah saya adalah - Jika saya menjalankan ini di visual studio 2013 saya mendapatkan string kosong.
Konfigurasi web saya adalah sebagai berikut.
<system.web>
<authentication mode="Windows"/>
<identity impersonate="false"/>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
Saat saya meneliti ini, saya menemukan jawaban saya, tetapi tidak dapat menemukan jawabannya di internet, jadi saya pikir saya akan membagikan ini:
Saya memperbaiki masalah saya dengan mengubah file applicationhost.config saya. File saya disimpan di folder "\ My Documents \ IISExpress \ config".
Tampaknya VS2013 mengabaikan file web.config saya dan menerapkan metode otentikasi yang berbeda.
Saya harus memodifikasi bagian file ini agar terlihat seperti di bawah ini. Sebenarnya, saya hanya memodifikasi anonymousAuthentication menjadi false dan mode windowsAuthentication menjadi true.
sumber
anonymousAuthentication
. Ini cukup untuk menyalakanwindowsAuthentication
. Pengaturan ini mengontrol mekanisme otentikasi apa yang diizinkan untuk digunakan situs web.Dalam Visual Studio 2013 DAN VS15 (tapi saya kira jika sama untuk semua versi lainnya) cukup tekan F4 dan ubah dua properti ini: - Anonymous Authentication: Disable - Windows Authentication: Enable
sumber
Di VS2013 F4 pada proyek Anda untuk melihat jendela properti dan menonaktifkan akses Anonim dan mengaktifkan "otentikasi Windows"
Maka itu akan berhasil. Tidak perlu mengubah apa pun
sumber
VS 2015 mengubah ini. Itu menambahkan folder .vs ke proyek web saya dan applicationhost.config ada di sana. Saya membuat perubahan yang disarankan (window authentication = true, anon = false) dan mulai mengirimkan nama pengguna alih-alih kosong.
sumber
Buka file applicationHost.config yang terletak di folder C: \ Users [userid] \ Documents \ IISExpress \ config. Di dalam file ini ubah overrideModeDefault dari anonymousAthentication dan windowsAuthentication menjadi "Allow"
Selanjutnya, ubah lockItem menjadi "false" untuk AnonymousAuthenticationModule dan WindowsAuthenticationModule
Membuat perubahan ini akan memungkinkan pengaturan konfigurasi web yang ada untuk menimpa apa yang ada di file applicationHost untuk IIS Express.
sumber
Anda juga dapat mengubah properti proyek untuk proyek web Anda, pilih "Web" dari tab kiri, lalu ubah menu tarik-turun Server menjadi "IIS Lokal". Buat direktori virtual baru dan gunakan manajer IIS untuk menyiapkan kumpulan situs / aplikasi Anda sesuai keinginan.
Saya lebih suka metode ini, karena Anda biasanya memiliki direktori v (atau situs) IIS lokal untuk diuji secara lokal. Anda juga tidak akan memengaruhi situs lain dengan cara ini.
sumber
Tampaknya jawaban yang benar diberikan oleh pengguna3149240 di atas. Namun, Seperti yang ditunjukkan Neil Watson, file applicationhost.config sedang dimainkan di sini.
Perubahan sebenarnya dapat dilakukan di panel VS Property atau di file meskipun di tempat yang berbeda. Di dekat bagian bawah file applicationhost.config adalah satu set elemen lokasi. Setiap aplikasi untuk IIS Express tampaknya memiliki salah satunya. Mengubah pengaturan di UI memperbarui bagian file ini. Jadi, Anda dapat mengubah pengaturan melalui UI atau memodifikasi file ini.
Berikut ini contoh dengan autentikasi anonim nonaktif dan autentikasi Windows aktif:
Ini setara di VS UI dengan:
sumber
F4 tidak selalu membawa saya ke panel ini. Selain itu, sering dikatakan bahwa sebuah gambar memiliki arti ribuan kata.
sumber