注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

╰此情可待成追忆

当没有阳光时,我自己便是阳光,当没有快乐时,我自己便是快乐

 
 
 

日志

 
 

[.net] membership与profile 用户信息扩展  

2013-11-16 21:49:53|  分类: asp.net MemberSh |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

MS提供的那个注册控件信息太少了,于是通过profile来控展注册信息,现在问题来了,我想在用户登录后,显示他的详细资料,用membership.GetUser()只能显示MS提供的信息,要如何才能既显示基本信息,又能显示扩展信息呢.搞了好久还没搞定()

费了一个晚上的功夫,终于把他搞定 啦
用CreateUserWizard弄的注册功能:

城市 邮编 电话这几项都是自己扩展的,用profile来保存的数据
登录后显示效果如图


原理就是获取Membership中用户的基本信息各profile中的扩展信息,然后重新组装一个DataSet,供ObjectDataSource使用
public static DataSet UserInfo()
    {
        MembershipUser Me = Membership.GetUser();
        ProfileCommon pm = new ProfileCommon();
        pm = pm.GetProfile(Me.UserName); //Profile是Page中的一个私有对象
        DataTable dt = new DataTable("uinfo");
        DataSet ds = new DataSet();  
        string[]  sFields= new string[]{"UserName", "Email", "CreationData","IsLockedOut","IsOnLine","LastLoginData","PostCode","Tel","City" };//推荐数据文本
        for (int i = 0; i < sFields.Length; i++)
        {
            dt.Columns.Add(new DataColumn(sFields[i], typeof(string))); 
        }
        DataRow dr = dt.NewRow();
        dr[0] = Me.UserName.ToString(); //用户名
        dr[1] = Me.Email.ToString();//电子邮件
        dr[2] = Me.CreationDate.ToString();//注册日期
        dr[3] = Me.IsLockedOut.ToString();  //是否锁定
        dr[4] = Me.IsOnline.ToString();//是否在线
        dr[5] = Me.LastLoginDate.ToString();//上次登录日期
        dr[6] = pm.PostCode.ToString();//电话号码
        dr[7] = pm.Tel.ToString();
        dr[8] = pm.City.ToString();
        dt.Rows.Add(dr);
        ds.Tables.Add(dt);
        return ds;
    }
以下是DetailView中的代码
<asp:LoginView ID="LoginView1" runat="server">
        <LoggedInTemplate>
            欢迎<asp:LoginName ID="LoginName1" runat="server" />
            &nbsp;进入系统<br />
            &nbsp;<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="Admin_MemberShip.aspx">用户和角色管理</asp:HyperLink>
            &nbsp;
            <asp:LoginStatus ID="LoginStatus1" runat="server" />
            <br />
            <br />
            您的个人资料如下:<br />
            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="UserInfo"
                TypeName="Member" UpdateMethod="UpdateUser">
                <UpdateParameters>
                    <asp:Parameter Name="Email" Type="String" />
                </UpdateParameters>
            </asp:ObjectDataSource>

            <aspetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataSourceID="ObjectDataSource1"
                Height="50px" Width="449px" BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" CellPadding="4" GridLines="Horizontal" AutoGenerateEditButton="True">
                <Fields>
                    <asp:BoundField DataField="UserName" HeaderText="用户名" ReadOnly="True" />
                    <asp:BoundField DataField="Email" HeaderText="邮箱" />
                    <asp:BoundField DataField="CreationData" HeaderText="注册时间" ReadOnly="True" />
                    <asp:BoundField DataField="LastLoginData" HeaderText="上次登录时间" ReadOnly="True" />
                    <asp:BoundField DataField="PostCode" HeaderText="邮编" />
                    <asp:BoundField DataField="Tel" HeaderText="电话号码" />
                    <asp:TemplateField>
                    <HeaderTemplate>来自:</HeaderTemplate>
                    <ItemTemplate>
                        <aspropDownList ID="City" runat="server" SelectedValue='<%# Eval("City")%> ' DataTextField="City" DataValueField="City" >
                            <asp:ListItem Selected="True" >北京</asp:ListItem>
                            <asp:ListItem>上海</asp:ListItem>
                            <asp:ListItem>四川</asp:ListItem>
                        </aspropDownList>
                    </ItemTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList ID="City" runat="server" SelectedValue='<%# Bind("City") %>'>
                                <asp:ListItem Selected="True">北京</asp:ListItem>
                                <asp:ListItem>上海</asp:ListItem>
                                <asp:ListItem>四川</asp:ListItem>
                            </asp:DropDownList>
                        </EditItemTemplate>
                    </asp:TemplateField>
                </Fields>
                <FooterStyle BackColor="White" ForeColor="#333333" />
                <EditRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
                <RowStyle BackColor="White" ForeColor="#333333" />
                <PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
            </asp:DetailsView>
            <br />
            &nbsp;
        </LoggedInTemplate>
        <AnonymousTemplate>
            <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/index.aspx">请先登录</asp:HyperLink>
            
        </AnonymousTemplate>
    </asp:LoginView>

  评论这张
 
阅读(562)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017