Je souhaite laisser les administrateurs distants (avec des informations d'identification locales ou de domaine) contrôler mon service Windows via une liaison TCP WCF. Pour ce faire, j'ai besoin d'authentifier l'utilisateur distant en tant qu'administrateur. Je peux vérifier l'utilisateur principal/rôles, mais je ne sais pas comment inviter l'utilisateur distant pour les détails d'utilisateur/jeton correct.Service WCF distant restreint: invite d'authentification Windows
Ceci est lié à ma précédente question sur Restricting WCF TCP endpoint to Administrators. Au lieu d'ajouter [PrincipalPermission(SecurityAction.Demand, Role = "Administrator")]
à ma méthode de service restreint et attraper un SecurityException
, il semble que je peux vérifier avec:
if (!System.Threading.Thread.CurrentPrincipal.IsInRole("Administrators"))
return MethodResult.AccessDenied;
// haven't tested if it's the service thread or the remote user yet.
Comment puis-je soufflerai si un résultat Refusé d'accès a été retourné à l'utilisateur distant pour l'authentification Windows si je peux Réinitialiser la connexion en tant que principal différent?
Bien sûr, la modification devrait être effectuée sur l'application client de l'utilisateur distant. Peut-être y a-t-il un moyen plus propre pour la WCF de le faire?
Edit: Recherche de ".net l'usurpation d'identité" m'a amené à this sur CodeProject. Je n'ai pas eu l'occasion de regarder, mais c'est peut-être le chemin à parcourir.
Merci. [Cette question] (http://stackoverflow.com/questions/1596161/how-to-show-authentication-dialog-in-c-net-3-5-sp1) fournit une invite native, mais avec un aspect ancien. –