2009-04-29 8 views
6

मैं प्रमाणीकरण-स्थिति या भूमिकाओं के आधार पर किसी दृश्य के कुछ हिस्सों को दिखाना/छिपाना चाहता हूं। मेरे नियंत्रक कार्यों के लिए मैंने ActionFilterAttribute बढ़ाया है, इसलिए मैं कुछ क्रियाओं को विशेषता दे सकता हूं।एएसपी.नेट एमवीसी रोल-आधारित या प्रमाणीकरण-आधारित प्रतिपादन कैसे लागू करें?

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

वहाँ एक समान रास्ता (जोड़कर भी) जो मैं दृश्य में उपयोग कर सकते हैं है? (ताकि यह पसंद नहीं: How can I create a view that has different displays according to the role the user is in?)

+1

इसके लिए आपको एक एक्शनफ़िल्टरैट्रीट क्यों बनाना है? प्राधिकरण विशेषता एक भूमिका पैरामीटर लेता है। –

+0

ओह दाएं :-) मैंने अपना खुद का निर्माण – Ropstah

उत्तर

6

आप उपयोग कर सकते हैं उपयोगकर्ता के इस तरह देखने से लॉग-इन भूमिकाओं:

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

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

और हो सकता है कि आपका एक्सटेंशन विधि की तरह कुछ के साथ

स्पष्ट रूप से, मैं पृष्ठ नियंत्रकों को गलती से अपने पृष्ठों को प्राप्त करने से डेटा को हटाने से रोकने के लिए, मेरे नियंत्रक कार्रवाई में HTTP डिलीट करने के लिए जावास्क्रिप्ट का उपयोग कर रहा हूं। मेरे मामले में मैं HTTP क्रिया को पूरक करने के लिए JQuery को एक डिलीट() विधि के साथ विस्तारित कर रहा हूं।

+0

सीखने के लिए किया है, इसलिए विशेषता-आधारित दृश्य प्रतिपादन का उपयोग संभवतः संभव नहीं है। मुझे कथन के साथ जाना चाहिए ... Thx – Ropstah

0

मैं यह नया अस्तित्व में था, लेकिन खोजने में थोड़ी देर लग गई। यहां मैं उपयोग कर रहा हूं:

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

यह आपको विभिन्न लॉगिन उपयोगकर्ताओं को उनके लॉगिन स्थिति या प्रमाण-पत्रों के आधार पर अलग-अलग सामग्री दिखाने की अनुमति देता है।

+0

यह वेबफॉर्म है। मेरा मानना ​​है कि मूल पोस्ट एमवीसी के बारे में था। –

संबंधित मुद्दे