#c# #roles
#c# #роли
Вопрос:
Я пытаюсь получить все роли в моем приложении на C #.
Когда я копирую код C # из: https://docs.microsoft.com/en-us/dotnet/api/system.web.security.roles.getallroles?view=netframework-4.8 на одной странице aspx точно так, как у них есть пример, тогда страница работает, и я могу видеть роли и правильно добавлять их.
Когда у меня есть следующий код за кодом:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace ToolingPMv2.Admin.Access
{
public partial class Roles : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string[] rolesArray;
rolesArray = Roles.GetAllRoles();
RolesGrid.DataSource = rolesArray;
RolesGrid.DataBind();
}
}
}
}
Моя страница aspx:
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.Master" CodeBehind="UserRoles.aspx.cs" Inherits="ToolingPMv2.Admin.Access.Roles" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<h2>Roles</h2>
<br />
<asp:GridView runat="server" CellPadding="2" id="RolesGrid" Gridlines="Both" CellSpacing="2" AutoGenerateColumns="false" >
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="Roles" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Content>
Я получаю следующую ошибку: «ToolingPMv2.Admin.Доступ.Роли’не содержит определения для ‘GetAllRoles’
Я подумал, что если у меня есть ‘Using System.Web.Security’, я мог бы получить доступ к этому методу.
Что я делаю не так? Это похоже на основной фундаментальный урок, который я должен знать к настоящему времени.
Ответ №1:
Класс для вашей страницы назван Roles
так, что скрывает класс в другом пространстве имен. Вы должны быть явными, например:
rolesArray = System.Web.Security.Roles.GetAllRoles();
Комментарии:
1. Дэвид, да, это было так. Спасибо!