J'écris une application Web qui utilise l'authentification Windows .NET et s'appuie sur l'appartenance à un groupe d'utilisateurs pour les autoriser dans diverses zones du site Web. En ce moment, je suis sur une machine de développement qui IS NE fait PAS partie d'un domaine et n'utilise pas AD, mais j'utilise simplement des groupes d'utilisateurs locaux. En général, cela fonctionne bien tel quel.
Cependant, lorsque je teste l'application, j'ai besoin d'ajouter et de supprimer des rôles dans mon compte d'utilisateur pour vérifier que les choses fonctionnent. Lorsque j'ajoute un rôle, il ne semble pas se propager jusqu'à ce que je me déconnecte de Windows et me reconnecte.
Est-il possible de forcer une mise à jour de l'appartenance au groupe sans avoir à se déconnecter?
taskkill.exe /F /IM Explorer.exe
runas /user:%USERDOMAIN%\%USERNAME% Explorer.exe
Cela tuera Explorer, puis rouvrira avec votre compte d'utilisateur ... Il vous demandera votre mot de passe et vous obtiendrez un nouveau jeton, mettant ainsi à jour votre adhésion.
Cela est difficile à réaliser à l'échelle du système, mais possible avec des fichiers exécutables individuels en tuant leur processus et en les relançant sous les informations d'identification de l'utilisateur.
Lorsque vous vous connectez, vous recevez un jeton reflétant, entre autres, votre appartenance à un groupe. La seule façon d'actualiser ce jeton est de vous connecter.
J'ai eu une situation similaire d'un site Web qui comptait sur l'adhésion d'un utilisateur à AD pour permettre la connexion au site Web. Une chose à envisager est de demander au serveur Web d'effectuer l'authentification/la requête auprès du serveur AD avec les informations d'identification fournies; si le serveur Web a accès à AD et demande simplement au serveur si l'utilisateur est dans le groupe XYZ, il obtiendra une liste directement depuis AD, pas depuis le jeton de connexion de l'utilisateur qui nécessite une ouverture/fermeture de session pour obtenir une nouvelle jeton avec des privilèges appropriés.
Je sais que votre machine de développement à partir de la description n'a pas cet accès, mais cela ressemblait à ce que vous voulez dire lorsque vous le déployez, vous avez besoin de cette fonctionnalité.
Si vous comptez sur le jeton, vous devrez vous déconnecter puis vous reconnecter.
Il existe une manière scriptée de le faire complètement via la ligne de commande; vous pouvez utiliser klist .
klist purge