[英]Excluding the profile provider, is there an easy way to add custom fields to ASP.NET membership?
[英]ASP.NET Membership - Need to add custom fields to admin screens
我需要添加與登錄相關聯的公司名稱字段。 稍后我需要將其合並到我現有的管理屏幕中進行報告。
我無法弄清楚如何完成這項工作。 我已經嘗試向Membership表添加一列並修改存儲過程,但該列不會顯示。
這是我需要修改的管理頁面的代碼。
<%@ 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:
<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>
我很感謝你的幫助。
謝謝,
史蒂夫
編輯:不要修改存儲過程或使用成員資格提供程序創建的表。 這是在惹麻煩。 您需要做的是添加一個Profile Provider,它擴展了標准用戶信息。
原文答案:閱讀Scott Guthrie撰寫的這篇文章: http : //weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx這是關於Table Profile Provider,它比開箱即用的。
這個也是: http : //weblogs.asp.net/scottgu/archive/2005/10/18/427754.aspx
史蒂夫,你返回一個自定義MembershipUser
,你已經用適當的值構造,從定制MembershipProvider
,將需要在為了做到這一點得以實施?
如果沒有,那么你需要這樣做 。
如果是這樣,您將需要從成員資格中轉換結果,因為它的返回類型是股票成員資格用戶,即使您要返回派生類型。
一些事情......
Users.DataSource = Membership.GetAllUsers().Cast<MyMembershipUser>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.