"Connexion d'un autre utilisateur' MVC 4 de l'Authentification Windows
J'ai un projet d'intranet écrit en MVC 4, qui utilise l'Authentification Windows pour autoriser et de l'authentification des utilisateurs.
J'ai besoin d'ajouter une "Connexion d'un autre utilisateur' fonctionnalité.
Après quelques recherches j'ai trouvé cette solution qui propose de revenir un 401, et a créé la suite de l'Action (qui est appelée à l'aide d'un formulaire):
//
//POST: /Home/LogOut
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOut()
{
return new HttpUnauthorizedResult();
}
L'Action est appelée, et le navigateur affiche un nom d'utilisateur et le mot de passe de la fenêtre, cependant que le résultat renvoie à l'Action, 401 est toujours retourné.
Comment puis-je rediriger l'utilisateur de revenir à l'action précédente, une fois qu'ils ont connecté avec les nouveaux pouvoirs?
Est-il un moyen d'invalider les informations d'identification sur le serveur au lieu de simplement retourner un 401?
Comment avez-vous manuellement déconnexion d'un utilisateur lors de l'utilisation de l'Authentification Windows? Toutes les solutions que j'ai trouvé nécessitent une réponse 403 être envoyé au navigateur, ce qui résulte en une informations d'identification de la boîte.
Désolé, j'ai oublié de Vous parler de WinAuth, pas sur FormsAuth. La seule solution que j'ai trouvé mais pas testé, c'est pour vous déconnecter à l'aide de javascript: stackoverflow.com/questions/1067263/... (je veux dire passer url de retour de la spéciale logpout page avec javascript fonction de déconnexion comme ci-dessus appelé sur la charge, puis de redirection à l'aide de windows.emplacement JS objet - utilisateur à la page déterminé par returnurl argument de chaîne de requête.
Merci Rob - je vais donner un aller et vous laisser savoir si cela fonctionne.
Avez-vous eu de la chance avec cette? Actuellement en train d'essayer la même chose et l'option javascript donne des résultats mitigés sur les différents navigateurs.
OriginalL'auteur Darbio | 2013-07-26
Vous devez vous connecter pour publier un commentaire.
Personnes l'ingénierie inverse de\décompilé un peu de code à partir de Sharepoint qui arrive à avoir cette fonctionnalité.
Je l'ai testé dans un
ASP.NET MVC 5
application, et il fonctionne comme prévu.Source:
La Force de Signer en tant qu'un autre utilisateur en utilisant l'Authentification Windows dans asp.net
Et comment pouvons-nous rediriger vers une autre action?
C'est pourquoi j'aime l'internet. Jours venez d'enregistrer, ici!
Dans mon expérience, cela ne fonctionnera pas lors de l'essai le code par le biais de la IDE de Visual Studio et localhost. Vous serez en mesure de changer l'utilisateur qu'une seule fois. Après cela, les informations d'identification ne sont pas manipulés correctement et ne sont jamais acceptés. Après 3 tentatives, la norme 401 page est affichée. Le seul moyen de réinitialiser est de fermer/rouvrir le navigateur.
J'ai aussi remarqué une exception avec ce code. Nous ne sommes pas censés redirection après un en-Tête a été ajouté à la réponse. Parce que la redirection est arrêté, le code fonctionne. Une alternative à la configuration de l'en-tête et le code d'état et manuellement à la fin de la Réponse est de simplement appeler
Return New HttpUnauthorizedResult("Unauthorized")
. C'est aussi plus "MVC-ish", à mon avis. Plutôt que de la manipulation de la Réponse directement, laissez la valeur de retour de l'Action de faire le travail.OriginalL'auteur Leniel Maccaferri
Cette méthode sera toujours déconnecter l'utilisateur et le rediriger vers la page d'accueil. J'ai également ajouté
[AllowAnonymous]
à assurez-vous que tout le monde peut accéder à cette méthode.Salut @Sonali, je vais regarder le code dans environ 2 - 3 heures et essayer de trouver une solution.
ce qui se passe parce que je suis en train d'essayer de vous connecter avec le même utilisateur, encore et encore. Après l'essai de nouveaux utilisateurs, il a bien fonctionné.
OriginalL'auteur Radu Terec
Pour moi le travail c':
Et en html
OriginalL'auteur Mario Villanueva