2011-07-16 7 views
1

J'ai un site Razor que j'ai créé avec des rôles complets de connexion/enregistrement et d'administration avec WebMatrix. Et une exigence est que l'administrateur puisse "Se connecter en tant qu'utilisateur existant" afin de pouvoir ajouter, modifier, annuler et/ou confirmer de nouvelles commandes pour cet utilisateur particulier auquel il est connecté. Je sais que ce n'est pas la façon la plus courante d'aborder cela, mais je l'ai vu beaucoup fait. Je possède actuellement un domaine revendant entreprise et mon fournisseur utilise ce type de fonction où il me permet de vous connecter en tant qu'utilisateur de créditer leur compte ETC ..Utilisation de FormsAuthentication

Alors, on m'a dit que FormsAuthentication fonctionnerait bien pour cela en C# . Donc, j'ai vérifié:

http://msdn.microsoft.com/en-us/library/twk5762b.aspx

Ce qui me conduit à demander:

Quoi?

Et ...

par « nom d'utilisateur », ils veulent dire l'adresse e-mail qui est créé lorsque l'utilisateur enregistré? Ou signifient-ils l'UserId, qui est un INT?

Et, est-ce vraiment aussi simple que faire cela ?:

@{ 
    if(Roles.IsUserInRole("Administrator")) 
    { 
    SetAuthCookie(
     "ClientsUserNameHere, 
     true 
    ); 
    } 
    else 
    { 
    Response.Redirect("~/Account/SignIn"); 
    } 
} 
<DOCTYPE! HTML> 
<html> 
    <head></head> 
    <body> 
    <p>Hello, Administrator, you are currently Signed In as [insert client name here].</p> 
    </body> 
</html> 

Répondre

3

Et, est-ce vraiment aussi simple que cela?

Oui, c'est vraiment si simple. Eh bien, en fait pour que cela prenne effet, vous devez rediriger parce que la page utilisera le cookie de demande qui indique encore un administrateur:

if(Roles.IsUserInRole("Administrator")) { 
    FormsAuthentication.SetAuthCookie(
     "ClientsUserNameHere", 
     false // <-- set to true only if you want persistent cookies 
    ); 
    Response.Redirect("~/Home/SomeUserPage"); 
} 

En outre, vous pouvez stocker quelques informations sur la session indiquant que c'est un jeu d'administrateur en tant qu'utilisateur normal (si vous avez déjà eu besoin de le savoir) et pas l'utilisateur normal.

Vous pouvez également consulter le following article pour un scénario d'emprunt d'identité plus avancé.

+0

Woot! Merci beaucoup @Darin - article très utile aussi :) – bendr

Questions connexes