2010-07-23 2 views
2
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<% 
    if (Request.IsAuthenticated) { 
%> 
     Welcome <b><%= Html.Encode(Page.User.Identity.Name) %></b>! 
     [ <%= Html.ActionLink("Log Off", "LogOff", "Account") %> ] 
     <br /> 
<% if(User.IsInRole("Administrator")) { %> 
     <br /> 
     <%= Html.ActionLink("Home", "Index", "Home") %> | <%= Html.ActionLink("About", "About", "Home") %> | <%= Html.ActionLink("UserControl","UserControl","Account")%> 
     <% } else { %> 
     <br /> 
     <%= Html.ActionLink("Home", "Index", "Home") %> | <%= Html.ActionLink("About", "About", "Home") %> 
    <%} %> 

관리자 인 경우에만 사용자의 역할을 확인하고 싶다면 사용자가 사용자 정의 컨트롤에 대한 링크를 볼 수 있습니다.이 코드를 실행하려고하면 " 'Data.User'에 'IsInRole'에 대한 정의가 없습니다."aspnet 회원에서 ASP.Net MVC 검사 역할

답변

4

ViewUserControl 유형에 User 속성이 있다고 생각하지 않아 컴파일러에서 생각하고 있다고 생각합니다. Data.User 유형의 도메인 객체에 액세스하십시오. 부분 컨트롤에서는 IsInRole 메서드가 작동해야하는 HttpContext.Current.User을 사용하여 User 인스턴스에 액세스 할 수 있습니다.