2016-06-22 16 views
1

Ich habe drei Rollen in meiner ASP.Net mvc-Anwendung: Admin, Client, ProjectManager. Ich habe eine Login-Seite in meiner Standardanwendung Bereich, und dann ich umleiten Nutzer pro ihrer Rolle ihres definierten Bereich:ASP.NET MVC: Benutzer auf ihre Bereiche umleiten

bool isAdmin = UserManager.IsInRole(user.Id,ApplicationUser.Role_SiteAdmin); 
bool isProjectManager = UserManager.IsInRole(user.Id,ApplicationUser.Role_ProjectManageer); 
await SignInAsync(user, model.RememberMe); 
if (isProjectManager==true) 
    return RedirectToAction("Index","Home",new { area = "Admin" }); 
else 
    return RedirectToLocal(returnUrl); 

In obigem Beispiel ProjectManager zu Admin Bereich gerichtet ist und Admin Rolle geleitet wird, Anwendung auf Standard Bereich.

Ich möchte wissen, gibt es eine globale Methode, die ich Benutzer auf ihre angegebenen Area umleiten kann, wenn sie andere Bereiche besuchen? Z.B. Wenn ProjectManager in den Kundenbereich verschoben wurde, wird er automatisch in seinen eigenen Bereich umgeleitet?

+1

Ich denke, es kann mit einem benutzerdefinierten Attribut durchgeführt werden, das die Aktion umleitet: http://stackoverflow.com/questions/3438998/asp-net-mvc-redirect-from -Attribut –

Antwort

0

Sie sind besser dran mit der AuthorizeAttribute. Es ermöglicht Ihnen, basierend auf den Benutzerrollen Zugriff auf die Aktion zu gewähren. zB [Authorize (Roles = "SiteAdmin")]

Verwandte Themen