À quoi pensez-vous qu'il retourne: l'identité de l'appelant ? ou l'identité du compte de service qui exécute le service Web?
Dans la plupart des cas, l'identité Windows dépend de la configuration du serveur; utilise-t-il l'usurpation d'identité? De plus, passez-vous l'identité des appelants lorsque vous appelez le service? Par exemple, UseDefaultCredentials
ou Credentials
. Et le service est-il configuré pour reconnaître les revendications des utilisateurs?
Généralement j'essaie pas pour utiliser l'emprunt d'identité; il nécessite une élévation sur le serveur, ne supporte pas tous les environnements, et peut avoir un impact important sur l'efficacité du pooling - donc je ne m'attendrais pas à ce que l'identité windows coulisse, mais si vous passez l'identité des appelants dans certains Je pourrais m'attendre à ce que le "principal" (Thread.CurrentPrincipal
) représente l'appelant. Je ne me souviens pas d'asmx, mais avec WCF, vous pouvez écrire votre propre code pour configurer le principal à partir de votre propre schéma d'authentification si vous le souhaitez.
Non, j'utiliser cette fonction: Fonction GetUserName() As String Si TypeOf My.User.CurrentPrincipal est WindowsPrincipal Then 'L'application utilise l'authentification Windows. 'Le format du nom est DOMAIN \ USERNAME. parties Dim() As String = de Split (My.User.Name, "\") nom d'utilisateur Dim As String = parties (1) domaine Dim As String = parties (0) Retour My.User.Name Else Return My.User.Name Fin Si Fin Fonction Mais quand je l'exécute à partir de l'ordinateur distant, je reçois HTTP 500 Erreur interne du serveur! – Comii