4

Мне нужно добавить поле Company Name, которое связано с логинами. Позже мне нужно включить это в мои существующие экраны администратора для отчетности.Членство в ASP.NET - нужно добавить пользовательские поля в экраны администратора

Я просто не могу понять, как это сделать. Я попробовал добавить столбец в таблицу Membership и изменить сохраненные procs, но столбец не появится.

Вот код моей страницы администратора, который мне нужно изменить.

<%@ Page Language="C#" MasterPageFile="~/admin.master" %> 
<%@ Register TagPrefix="dc" TagName="alphalinks" Src="~/alphalinks.ascx" %> 

<script runat="server"> 
    private void Page_PreRender() 
    { 
     if (Alphalinks.Letter == "All") 
     { 
      Users.DataSource = Membership.GetAllUsers(); 
     } 
     else 
     { 
      Users.DataSource = Membership.FindUsersByName(Alphalinks.Letter + "%"); 

     } 
     Users.DataBind(); 
    } 


</script> 

<asp:Content ID="Content1" ContentPlaceHolderID="c" Runat="Server"> 

<!-- #include file="_nav.aspx --> 

<table class="webparts"> 
<tr> 
    <th>Users by Name</th> 
</tr> 
<tr> 
<td class="details" valign="top"> 

<!-- #include file="_nav3.aspx --> 


User Name filter:&nbsp;&nbsp;&nbsp; 
<dc:alphalinks runat="server" ID="Alphalinks" /> 

<br /> 
    <br /> 

<asp:GridView runat="server" ID="Users" AutoGenerateColumns="false" 
    CssClass="list" AlternatingRowStyle-CssClass="odd" GridLines="none" 
    > 
<Columns> 
    <asp:TemplateField> 
     <HeaderTemplate>User Name</HeaderTemplate> 
     <ItemTemplate> 
     <a href="edit_user.aspx?username=<%# Eval("UserName") %>"><%# Eval("UserName") %></a> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField DataField="email" HeaderText="Email" /> 

    <asp:BoundField DataField="comment" HeaderText="Comments" /> 
    <asp:BoundField DataField="creationdate" HeaderText="Creation Date" /> 
    <asp:BoundField DataField="lastlogindate" HeaderText="Last Login Date" /> 
    <asp:BoundField DataField="lastactivitydate" HeaderText="Last Activity Date" /> 
    <asp:BoundField DataField="isapproved" HeaderText="Is Active" /> 
    <asp:BoundField DataField="isonline" HeaderText="Is Online" /> 
    <asp:BoundField DataField="islockedout" HeaderText="Is Locked Out" /> 
</Columns> 
</asp:GridView> 

</td> 

</tr></table> 


</asp:Content> 

Я ценю любую помощь по этому просьбе.

Спасибо,

Стиву

ответ

2

Стив, ты возвращающая обычай MembershipUser, что вы построили с соответствующими значениями, от обычая MembershipProvider, что должны были бы быть реализованы для того, чтобы сделать это?

Если нет, то you will need to do so.

Если это так, вам нужно будет отдать результаты членства, так как это тип возврата - это членство в членстве, даже если вы возвращаете производный тип.

что-то вдоль линий ..

Users.DataSource = Membership.GetAllUsers().Cast<MyMembershipUser>(); 
+0

Похоже, мне приходится переписывать большинство моих страниц, чтобы добавить одно поле? Это кажется действительно испорченным. Нет более простого способа? Спасибо вам за вашу помощь, я немного расстроен, так как хочу лучше понять это. – Steve

+0

@steve - Ну, даниэль предлагает использовать профили, с которыми я согласен в некоторых случаях, в зависимости от волатильности и чувствительности дополнительных данных. это поможет мне разобраться, если вы опишете тип полей, которые хотите связать с пользователем, и почему вы выбрали членство над профилем в первом случае. –

+0

Мне нужно всего одно или два поля. 1 - имя клиента, а другое - значение, представляющее дни, в которые действует пароль. Я выбрал Членство, потому что начал его кодировать таким образом. Никакой другой причины, поскольку я действительно новичок во всем этом. – Steve

3

Edit: Не изменять сохраненные проки или таблицы, созданные с помощью поставщика членства. Это требует неприятностей. Что вам нужно сделать, это добавить поставщика профилей, который расширяет стандартную пользовательскую информацию.

Оригинал Ответ: Есть чтение этой статьи Скотта Гатри: http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx Речь идет о таблице профиля поставщика, который намного лучше, чем из коробки один.

Это один тоже: http://weblogs.asp.net/scottgu/archive/2005/10/18/427754.aspx

+0

Я признаю свое намерение, но вы никак не решение проблемы, как состояние, Даниил. К сожалению -1. –

+0

Проблема заключается в том, что они хотят связать имя компании с логином пользователя. ProfileProvider является стандартным способом asp.net для этого, если вы уже используете поставщика членства. Они идут рука об руку. –

+0

Вы можете восковым ревизионистом все, что вам нравится, даниэль, это не меняет того факта, что ваш первоначальный ответ был нелогичным. Совет, который вы позже добавили, действителен, но не притворяйтесь, что вы сошли с блока с помощью сплоченного ответа. –

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

  • Нет связанных вопросов^_^