2016-03-31 12 views
1

Ich verwende VS 2013 und arbeite an einer MVC-Webanwendung. Es verwendet Windows-Authentifizierung. Ich habe eine bool-Methode geschrieben, die nach Benutzern in einer bestimmten AD-Gruppe sucht.So verbergen Sie Links von Benutzern, die nicht zur AD-Gruppe gehören

Allerdings kann ich diese Methode nicht aus meiner Sicht verwenden, da es keine Erweiterungsmethode ist.

Was ich tun möchte, ist zu überprüfen, ob der Benutzer in der Gruppe ist und dann den spezifischen Link ausblenden, wenn er/sie nicht in dieser Gruppe ist.

Irgendwelche Vorschläge?

Antwort

1

Warum nicht eine Eigenschaft in Ihrem Modell hat:

public bool IsAuthorized { get; set; } 

In der Steuerung legen Sie die Eigenschaft in der Aktion-Methode, bevor Sie das Modell der Rückkehr:

YourModel model = ... 

string user = User.Identity.Name; 
PrincipalContext context = new PrincipalContext(ContextType.Domain, "DOMAINNAME"); 
model.IsAuthorized = user.IsMemberOf(ctx, IdentityType.SamAccountName, "GroupName"); 

return View(model); 

Dann in der Ansicht, einfach verstecken der Link, wenn es nicht autorisiert ist

@if (model.IsAuthorized) 
{ 
    @Html.Action(...) // or whatever your link is 
}