Frage

ich will Ein- / Ausblenden bestimmte Teile einer Ansicht basierend auf Authentication-Status oder Rollen. Für meine Controller-Aktionen habe ich verlängert Action so dass ich bestimmte Aktionen zuschreiben kann.

<RequiresRole(Role:="Admin")> _
Function Action() as ActionResult
    Return View()
End Function

Gibt es eine ähnlich Art und Weise (zuschreiben), die ich in den Ansichten verwenden kann? (Also nicht so: Wie kann ich eine Ansicht erstellen, die der Benutzer in verschiedenen Displays entsprechend der Rolle ist? )

War es hilfreich?

Lösung

Sie können den angemeldeten in dem Benutzer zuzugreifen Rollen aus der Sicht wie folgt:

<% if (Page.User.IsInRole("Admin")) { %>
        <td>
          <%= Html.DeleteButton("delete", model.ID) %>
        </td>
<% } %>

und vielleicht Ihre Erweiterungsmethode mit so etwas wie:

public static string DeleteButton(this HtmlHelper html, 
    string linkText, int id)
{
    return html.RouteLink(linkText,
     new { ID = id, action = "Delete" },
     new { onclick = "$.delete(this.href, deleteCompleted()); return false;" });
}

Natürlich, ich bin mit JavaScript einer HTTP zu meiner Controller-Aktion ausführen DELETE Seite Crawler nicht versehentlich Daten zu löschen meine Seiten zu verhindern, dass zu bekommen. In meinem Fall bin ich Verlängerung JQuery mit delete () Methode, um das HTTP-Verb zu ergänzen.

Andere Tipps

ich neu in diesem existierte, aber dauerte eine Weile zu finden. Hier ist, was ich bin mit:

<asp:LoginView runat="server">
    <AnonymousTemplate>
        You are not logged in yet. Please log in.
    </AnonymousTemplate>
    <RoleGroups>
        <asp:RoleGroup Roles="Admin">
            <ContentTemplate>
                You are an Admin.
            </ContentTemplate>
        </asp:RoleGroup>
        <asp:RoleGroup Roles="Customers">
            <ContentTemplate>
                You are a customer.
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
    <LoggedInTemplate>
        Simple Log in check
    </LoggedInTemplate>
</asp:LoginView>

Auf diese Weise können Sie verschiedene Inhalte an verschiedene Benutzer zeigen, basierend auf ihren Einbuchzustand oder Anmeldeinformationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top