MemberShip权限与角色管理(4)---与登录控件的完美结合

 1.创建用户CreateUserWizard控件

在vs2005中创建一个aspx页面,取名CreateUserWizard.aspx。直接从toolbox中拖入一个CreateUserWizard控件,设置一下FinishDestinationPageUrl属性,该属性指示用户创建完成后,用户点击“继续”后定向的页面。

 <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" ContinueDestinationPageUrl="~/Default.aspx">

        </asp:CreateUserWizard>

现在不做任何设置,在vs2005的中design视图中可以看到

MemberShip权限与角色管理(4)---与登录控件的完美结合 - cruelchen - 好好做人

正确设置membership后,注册用户就立马可以使用了,输入用户信息提交,出现下面结果:

MemberShip权限与角色管理(4)---与登录控件的完美结合 - cruelchen - 好好做人

要想使新用户注册以后直接纳入member角色组了。在CreateUserWizard的CreatedUser事件中添加一句简单的话:

protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)

    {

        Roles.AddUserToRole(CreateUserWizard1.UserName, "member");

    }

 

2.用户登录login控件

<asp:Login ID="Login1" runat="server" DestinationPageUrl="~/admin/Default.aspx" PasswordRecoveryText="找回密码" PasswordRecoveryUrl="PasswordRecovery.aspx">

</asp:Login>

属性解释:

DestinationPageUrl:设置在登录尝试成功时向用户显示的页面的 URL。

PasswordRecoveryText:设置密码恢复页链接的文本。

PasswordRecoveryUrl:设置密码恢复页的 URL。如果用户忘记密码,可以点击这个链接点找回他的密码。

3.显示当前用户的名称LoginName控件

<asp:LoginName ID="LoginName1" runat="server" FormatString="您好,{0},您目前的身份是:注册用户" />

如果当前登录的是blueidea,那么显示的就是“您好,blueidea,您目前的身份是:注册用户”。

4.检测用户的身份验证状态的LoginStatus控件

asp:LoginStatus ID="LoginStatus1" runat="server" />

它包含两种状态:1)已登录到 网站 。2)已从网站注销。

当用户注销后,会给出一个“登录”的链接,用户可以点击这个链接来登录;当用户登录后,这个控件会自动转变为“注销”状态。

5.为不同类别用户呈现不同内容的LoginView控件

<asp:LoginView ID="LoginView1" runat="server">

                <LoggedInTemplate>

                    <asp:LoginName ID="LoginName1" runat="server" FormatString="您好,{0},您已经登录了。" />

                </LoggedInTemplate>

                <AnonymousTemplate>

                    <asp:Label ID="Label2" runat="server" Text="您尚未登录,请"></asp:Label><asp:LoginStatus

                        ID="LoginStatus1" runat="server" />

                </AnonymousTemplate>

                <RoleGroups>

                    <asp:RoleGroup Roles="admin">

                        <ContentTemplate>

                            <asp:LoginName ID="LoginName1" runat="server" FormatString="您好,{0},您目前的身份是: 管理 员" />

                            <br />

                            您可以访问:<asp:HyperLink ID="HyperLink1" NavigateUrl="User/Default.aspx" runat="server">User/Default.aspx</asp:HyperLink>

                            <br />

                            您也可以访问:<asp:HyperLink ID="HyperLink2" NavigateUrl="Admin/Default.aspx" runat="server">Admin/Default.aspx</asp:HyperLink>

                            <br />

                            <asp:LoginStatus ID="LoginStatus3" runat="server" />

                        </ContentTemplate>

                    </asp:RoleGroup>

                    <asp:RoleGroup Roles="member">

                        <ContentTemplate>

                            <asp:LoginName ID="LoginName1" runat="server" FormatString="您好,{0},您目前的身份是:注册用户" />

                            <br />

                            您可以访问<asp:HyperLink ID="HyperLink1" NavigateUrl="User/Default.aspx" runat="server">User/Default.aspx</asp:HyperLink>

                            <br />

                            您不能访问<asp:HyperLink ID="HyperLink2" NavigateUrl="Admin/Default.aspx" runat="server">Admin/Default.aspx</asp:HyperLink>

                            <br />

                            <asp:LoginStatus ID="LoginStatus2" runat="server" />

                        </ContentTemplate>

                    </asp:RoleGroup>

                </RoleGroups>

            </asp:LoginView>

可以看到,这里包含了三个模板:LoggedInTemplate、AnonymousTemplate和RoleGroup的模板。如果定义了LoggedInTemplate模板,那么该用户会看到该模板内的内容,除非该用户属于另一个角色组,且该角色组在已在RoleGroups的模板中的定义。当匿名用户(未登录的用户)访问站点时,AnonymousTemplate内的内容会呈现给该用户。在前面我们配置的web.config中启用了角色,我们现在为admin角色定义一个模板,你可以在上面的代码中找到。

MemberShip权限与角色管理(4)---与登录控件的完美结合 - cruelchen - 好好做人

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值