使用Asp.Net配置 角色

通过Asp.Net设置角色管理和登陆控件使用的练习
1.准备工作
   1.新建一个母版页,然后如下文件夹和页面(这些页面都继承模板页)
Default.aspx
Login.aspx
MasterPage.master
Recovery.aspx
Register.aspx
ADMIN(文件夹)Admin_Default.aspx(在Admin文件夹)
MEMBER(文件夹)Member_Default.aspx(在MEMBER文件夹)
VIP(文件夹)Vip_Default.aspx(在VIP文件夹)
   2.新建站点地图,并设计母版页(看最下面的图)(其中"用户名"和"登陆"是拖的工具箱里(登陆的LoginName和LoginStatus),左边TreeView和上面是导航控件,TreeView和站点地图绑定)

站点地图代码

   3.IIS里建虚拟目录,并修改密码最小长度为2,强类型为0

IIS虚拟目录

2.在Visual Studio界面的解决方案那里,点Asp.Net配置

Asp.Net配置

3.下面开始在页面练习"登陆控件"的使用

  1.Login页面
     1.(在工具箱的登陆里拖Login控件到这个页面)-->转换为模板(拖2个LinkButton放在"下次记住我"后,用来注册和忘记密码)
     2.后台代码:(2个LinkButton的重定向)
    protected void lbtn_Register_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Register.aspx");
    }
    protected void lbtn_Recovery_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Recovery.aspx");
    }
  2.Register页面
    1.在工具箱的登陆里拖一个CreateUserWizard到页面(点 自定义创建用户步骤)-->在安全答案下面插入一行(操作:在安全答案前面的空白出右键-->插入下面的行)-->在工具箱的标准里拖一个RadioButtonList(点选择项)-->连续添加3个成员(ADMIN,VIP,MEMBER,Text和value都设置一样(比如都为ADMIN),然后把MEMBER的Selected设置成True(表示默认为会员))-->把RadioButtonList的RepeaterDirection属性设置为Horizontal
    2.点创建用户(设置这个用户的角色)
        RadioButtonList rbl = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("RadioButtonList1") as RadioButtonList;
        Roles.AddUserToRole(CreateUserWizard1.UserName, rbl.SelectedValue);
    3.点右上小三角-->自定义完成用户(为了让注册用户注册后,就可以直接进入首页)
       Response.Redirect("~/Default.aspx");
    4.回到界面点右上小三角,把步骤后面,下拉框里的"完成"改为"注册新用户"

4.最后,想要TreeView对不同的角色显示不同的内容
  1.可见性在站点地图里配,在不同的节点里,加一个形如 roles="ADMIN,VIP",比如下面这个节点后就多了一个roles属性
     <siteMapNode url="~/Admin/Admin_Default.aspx" title="Admin_Default" description="" roles="ADMIN"/>
  2.权限在Asp.Net配置-->安全 时,已经设置好了(就是上面的第二步,在Asp.Net配置里设置的)
  3.在Web.Config里的    </system.web>前面加上下面的代码
      <siteMap defaultProvider="AspXmlSiteMapProvider" enabled="true">
        <providers>
          <add name="AspXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/>
        </providers>
      </siteMap>

5.代码下载:下载

你可能感兴趣的:(asp.net)