Próbuję pobrać nazwę użytkownika systemu Windows podczas debugowania w programie Visual Studio 2013. Po prostu używam:
httpcontext.current.user.identity.name
Jeśli uruchomię to na moim serwerze deweloperskim, działa dobrze, jeśli uruchomię go w trybie debugowania na dowolnej poprzedniej wersji programu Visual Studio, również działa dobrze.
Moje problemy to - jeśli uruchomię to w programie Visual Studio 2013, otrzymuję pusty ciąg.
Moja konfiguracja internetowa jest następująca.
<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>
Kiedy to badałem, znalazłem odpowiedź, ale nie mogę znaleźć odpowiedzi w Internecie, więc pomyślałem, że podzielę się tym:
Rozwiązałem problem, modyfikując plik applicationhost.config. Mój plik został zapisany w folderze „\ My Documents \ IISExpress \ config”.
Wygląda na to, że VS2013 ignorował mój plik web.config i stosował różne metody uwierzytelniania.
Musiałem zmodyfikować tę część pliku, aby wyglądała jak poniżej. Prawdę mówiąc, zmodyfikowałem tylko anonymousAuthentication na false, a tryb windowsAuthentication na true.
źródło
anonymousAuthentication
. Wystarczy włączyćwindowsAuthentication
. Te ustawienia kontrolują, z jakich mechanizmów uwierzytelniania mogą korzystać witryny internetowe.W Visual Studio 2013 AND VS15 (ale myślę, że jeśli to samo dla wszystkich innych wersji) po prostu naciśnij F4 i zmień te dwie właściwości: - Uwierzytelnianie anonimowe: Wyłącz - Uwierzytelnianie systemu Windows: Włącz
źródło
W VS2013 F4 w projekcie, aby wyświetlić okno właściwości i wyłączyć dostęp anonimowy i włączyć „uwierzytelnianie systemu Windows”
Wtedy zadziała. Nie musisz niczego zmieniać
źródło
VS 2015 to zmienia. Dodał folder .vs do mojego projektu internetowego i znajdował się tam plik applicationhost.config. Wprowadziłem sugerowane zmiany (uwierzytelnianie okna = prawda, anon = fałsz) i zaczęło dostarczać nazwę użytkownika zamiast pustej.
źródło
Otwórz plik applicationHost.config znajdujący się w folderze C: \ Users [identyfikator użytkownika] \ Documents \ IISExpress \ config. W tym pliku zmień overrideModeDefault anonymousAthentication i windowsAuthentication na „Allow”
Następnie zmień wartość lockItem na „false” dla modułu AnonymousAuthenticationModule i WindowsAuthenticationModule
Wprowadzenie tych zmian umożliwi istniejącym ustawieniom konfiguracji sieci Web zastąpienie zawartości pliku applicationHost dla usług IIS Express.
źródło
Możesz także zmodyfikować właściwości projektu sieci Web, wybrać „Sieć” z lewej karty, a następnie zmienić listę rozwijaną Serwery na „Lokalne IIS”. Utwórz nowy katalog wirtualny i użyj menedżera IIS, aby skonfigurować pulę witryny / aplikacji zgodnie z potrzebami.
Wolę tę metodę, ponieważ zazwyczaj masz lokalny katalog v (lub witrynę) usług IIS do testowania lokalnie. Nie wpłyniesz w ten sposób na żadne inne witryny.
źródło
Wygląda na to, że poprawnej odpowiedzi udzielił powyżej user3149240. Jednak, jak zauważył Neil Watson, plik applicationhost.config jest tutaj odtwarzany.
Zmiany można faktycznie wprowadzić w panelu VS Property lub w pliku, choć w innym miejscu. U dołu pliku applicationhost.config znajduje się zestaw elementów lokalizacji. Wydaje się, że każda aplikacja dla IIS Express ma jeden z nich. Zmiana ustawień w interfejsie użytkownika aktualizuje tę sekcję pliku. Możesz więc zmienić ustawienia za pomocą interfejsu użytkownika lub zmodyfikować ten plik.
Oto przykład z wyłączonym anonimowym uwierzytelnianiem i włączonym uwierzytelnianiem systemu Windows:
Jest to odpowiednik w VS UI:
źródło
F4 nie zawsze prowadzi mnie do tego panelu. Poza tym często mówi się, że obraz jest wart tysiąca słów.
źródło