2010-07-23 4 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»ASP.Net MVC проверка роли пользователя в aspnet memebership

ответ

4

Я не верю, что тип ViewUserControl имеет свойство User, поэтому компилятор думает, что вы пытаетесь доступ к вашему доменному объекту типа Data.User. В частичном контроле вы можете получить доступ к экземпляру пользователя с помощью HttpContext.Current.User, где должен работать метод IsInRole.

Смежные вопросы