2015-04-14 1 views
0

J'ai un menu dans le site Web. Je veux accéder à cela pour tous les rôles. Par exemple: j'ai 3 rôle que Role1 a accès au personnel, référé, visite menu, et role2 avoir accès au personnel, menu régime, et role3 ont un accès complet.Autorisation dans ASP.NET MVC 4

J'ai créé une classe statique qui définit la valeur lors de la connexion de l'utilisateur sur le site. et utilisez cette propriété de classe pour le menu show/hide. mais changez cette valeur quand un autre utilisateur se connecte au site.

public static class GlobalVariables 
{ 
    public static string UserName { get; set; } 
    public static string Image { get; set; } 

    public static bool IsAuthorizePersonnel { get; set; } 
    public static bool IsAuthorizeReferred { get; set; } 
    public static bool IsAuthorizeDiet { get; set; } 
    public static bool IsAuthorizeVisit { get; set; } 
} 

Comment définir l'accès au menu?

Répondre

0

Fondamentalement, vous avez une seule instance de la classe qui est utilisée pour tous les utilisateurs du site. Parce que c'est une classe statique.

Vous devez créer une classe d'instance par utilisateur. Ce que vous pourriez placer dans le cache sous le nom d'utilisateur fi.

+0

Merci, lorsqu'une classe instance par utilisateur créé, comment utilisez-i cela dans une autre vue? –

1

La classe statique change lorsque de nouveaux utilisateurs se connectent car ASP.NET gère plusieurs demandes/clients dans le même domaine App, ce qui signifie qu'ils partagent des classes/propriétés statiques. Pour faire quelque chose comme ceci, vous devez mettre les informations en mémoire cache soit par l'intermédiaire de l'état de la session, soit par un cache mémoire utilisateur (tel que Redis).

L'adhésion simple à Asp.Net peut également prendre en charge les rôles. Vous pouvez également envisager de créer les propriétés IsX en tant que wrappers autour des vérifications de rôle.

Voir les articles suivants quelques exemples:

+0

Merci, j'utilise le rôle et définir l'utilisateur dans le rôle. mais je veux obtenir la valeur de la propriété de l'utilisateur dans la vue de connexion et utiliser cette valeur dans une autre vue –