Piszę aplikację internetową, która korzysta z .NET Windows Authentication i polega na członkostwie grupy użytkowników w celu autoryzacji ich w różnych obszarach witryny. Obecnie jestem na komputerze deweloperskim, który NIE JEST częścią domeny i nie używa AD, zamiast tego używam tylko lokalnych grup użytkowników. Ogólnie rzecz biorąc działa to dobrze, jak jest.
Jednak podczas testowania aplikacji muszę dodawać i usuwać role na moim koncie użytkownika, aby sprawdzić, czy wszystko działa. Gdy dodam rolę, wydaje się, że nie propaguje się, dopóki nie wyloguję się z systemu Windows i nie zaloguję ponownie.
Czy można wymusić aktualizację członkostwa w grupie bez konieczności wylogowywania?
windows-7
groups
authorization
kingdango
źródło
źródło
Odpowiedzi:
Zabije to eksploratora, a następnie otworzy ponownie z kontem użytkownika ... Poprosi cię o podanie hasła i otrzyma nowy token, tym samym aktualizując twoje członkostwo.
źródło
klist -lh 0 -li 0x3e7 purge
, dla użytkownikaklist purge
. NB: Sam nie próbowałem tych poleceń; po prostu powtarzam informacje z połączonego artykułu.Jest to trudne do przeprowadzenia w skali całego systemu, ale możliwe jest w przypadku pojedynczych plików wykonywalnych poprzez zabicie ich procesu i ponowne uruchomienie ich przy użyciu poświadczeń użytkownika.
Po zalogowaniu otrzymasz między innymi token odzwierciedlający członkostwo w grupie. Jedynym sposobem na odświeżenie tego tokena jest zalogowanie się.
źródło
runas
aby uruchomić proces jako inny użytkownik niż twój i manipulować członkostwem w grupie tego użytkownika testowego. Za każdym razem, gdy zamykasz i ponownie uruchamiasz proces zarunas
jego pomocą , należy utworzyć nową sesję, która powinna odzwierciedlać zmienione członkostwo w grupie. Nie testowałem tego, ale teoretycznie powinno to działać w ten sposób.Miałem podobną sytuację na stronie, która polegała na członkostwie użytkownika w AD, aby umożliwić logowanie do strony. Jedną z rzeczy, które należy rozważyć, jest zlecenie przez serwer WWW uwierzytelnienia / zapytania do serwera AD przy użyciu dostarczonych poświadczeń; jeśli serwer WWW ma dostęp do AD i po prostu pyta serwer, czy użytkownik należy do grupy XYZ, otrzyma listę bezpośrednio z AD, a nie z tokena logowania użytkownika, który wymaga zalogowania / wylogowania, aby uzyskać nowy token z odpowiednimi uprawnieniami.
Wiem, że twoja maszyna deweloperska z opisu nie ma tego dostępu, ale brzmiała tak, jakbyś miał na myśli, że kiedy ją wdrażasz, potrzebujesz tej funkcjonalności.
Jeśli polegasz na tokenie, musisz się wylogować i zalogować ponownie.
źródło
Istnieje skryptowy sposób, aby to zrobić całkowicie za pomocą wiersza poleceń; możesz użyć klist .
źródło
Purging tickets destroys all tickets that you have cached, so use this attribute with caution. It might stop you from being able to authenticate to resources. If this happens, you will have to log off and log on again.
Czy jednak[Purge](https://technet.microsoft.com/en-us/library/hh134826.aspx?f=255&MSPPError=-2147217396)
odzyskuje tokeny? czy po prostu wyrzuca istniejące, pozostawiając cię z niczym? Jeśli nie masz żadnych tokenów, czy ponowne uruchomienie Eksploratora (lub innego procesu, który wymaga tokena) automatycznie je rejestruje?Gotowy.
źródło