【问题标题】:asp.net mvc -> Roles.IsUserInRole(username,role)asp.net mvc -> Roles.IsUserInRole(用户名,角色)
【发布时间】:2010-07-23 19:40:45
【问题描述】:

我们是否需要添加任何引用或导入任何命名空间 Roles.IsUserInRole(username,role) - > 是不是没有给出正确的结果。

<% if(Model.Count < 1)
    {%>
        No User's Add Under You!
    <% } else {
        foreach (var item in Model) { %>
    <tr class="tblheader">
        <th> User Name </th>
        <th> Last Activity      </th>
        <th> Administrator     </th>
        <th> Base User    </th>
        <th> Print User    </th>
        <th> SDI User </th>
        <th> Edit User         </th>
    </tr>
    <% if(Model.Count < 1)
    {%>
        No User's Add Under You!
    <% } else {
        foreach (var item in Model) { %>

<td class="usertd">
            <%if(Roles.IsUserInRole(item.UserName,"Administrator")) { %>
             <asp:Image runat="server" ImageUrl="~/Content/images/buttons/btn_rnd_save.png" alt="Yes" />
            <% } else { %>
            <asp:Image runat="server" ImageUrl="~/Content/images/buttons/btn_Close.gif" alt="No" />
          <% } %>           
          </td>
            <td class="usertd">
            <%if(Roles.IsUserInRole(item.UserName,"BaseUser")) { %>
             <asp:Image runat="server" ImageUrl="~/Content/images/buttons/btn_rnd_save.png" alt="Yes" />
            <% } else { %>
            <asp:Image runat="server" ImageUrl="~/Content/images/buttons/btn_Close.gif" alt="No" />
          <% } %>           
          </td>

【问题讨论】:

    标签: asp.net asp.net-mvc-2 asp.net-membership


    【解决方案1】:

    你导入System.Web.Security

    更多详情可以查看http://msdn.microsoft.com/en-us/library/bz1zy88e.aspx

    【讨论】:

    • 我已经这样做了
    【解决方案2】:

    .NET 4.0 的 System.Web.ApplicationServices

    .NET 3.5 的 System.Web.Security

    【讨论】:

    • 类保持不变,但他们将其移至不同的 dll/命名空间。
    【解决方案3】:

    您需要在 web.config 中启用 RoleManager,因为它默认是禁用的。

    <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
      <providers>
        <clear/>
        <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </roleManager>
    

    【讨论】:

    • 我做了这个链接中提到的所有事情,但它仍然做同样的事情吗?还有什么我需要看的吗?
    • 您是否创建了 ASP.NET 安全数据库?或者,您使用的是 Windows Active Directory 提供程序吗?您是否有身份验证(登录/注销)工作?您是否为用户分配了角色?
    • 我正在使用 ASP.NET 数据库,它由 asp.net 会员提供商提供。我可以登录,我在数据库中添加了大约 80 个用户并创建了 5 个角色。
    【解决方案4】:
    System.Web.ApplicationServices
    

    【讨论】:

      【解决方案5】:

      如果在

      处设置断点
      IsUserInRole
      ,被击中了吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-11
        • 2013-12-26
        • 2020-10-16
        • 2016-05-03
        • 2018-05-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多