ASP.NET MVC كيفية تطبيق القائم على الدور أو المصادقة المستندة إلى عرض تقديم?

StackOverflow https://stackoverflow.com/questions/802073

سؤال

أريد أن إظهار/إخفاء أجزاء معينة من وجهة نظر تستند على مصادقة الوضع أو الأدوار.بالنسبة لي تحكم الإجراءات لقد وجهت ActionFilterAttribute حتى أستطيع أن السمة إجراءات معينة.

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

هل هناك مماثلة الطريقة (عزو) التي يمكن استخدامها في وجهات النظر ؟ (لذلك ليس من هذا القبيل: كيف يمكنني إنشاء طريقة عرض التي تحتوي على مختلف العروض وفقا دور المستخدم ؟ )

هل كانت مفيدة؟

المحلول

يمكنك الوصول إلى المستخدم تسجيل الدخول الأدوار من عرض مثل هذا:

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

و ربما طريقة التمديد مع شيء من هذا القبيل:

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;" });
}

ومن الواضح أن أنا باستخدام جافا سكريبت لأداء HTTP حذف بلدي تحكم العمل لمنع الصفحة الزواحف من غير قصد حذف البيانات من على صفحات.في حالتي أنا أمد مسج مع حذف() طريقة الملحق HTTP الفعل.

نصائح أخرى

أنا جديدة في هذا موجودة ، ولكن استغرق بعض الوقت للعثور على.وهنا ما أنا باستخدام:

<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>

هذا يسمح لك لإظهار المحتوى المختلفة لمختلف المستخدمين على الدخول الدولة أو التفويض.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top