有风的日子

Miss Wendy Days

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1.在应用程序根目录的web.config中,统一配置用户验证,权限设置,Membership设置以及roleManage设置

<!--注意,应该放置在system.web标签之前-->

<!--配置角色用户管理数据库连接-->

<connectionStrings>
    <remove name="LocalSqlServer"/>
    <add name="LocalSqlServer" connectionString="server=.;uid=cctv;pwd=123456;database=mvc_test" />
</connectionStrings>

<system.web>

<!--注意,应该放置在system.web标签内-->

<!--配置Membership-->
    <membership defaultProvider="AspNetMembershipProvider" userIsOnlineTimeWindow="20">
      <providers>
        <remove name="AspNetSqlMembershipProvider" />
        <add name="AspNetMembershipProvider"
            type="System.Web.Security.SqlMembershipProvider"
            connectionStringName="LocalSqlServer"
            enablePasswordRetrieval="true"
            enablePasswordReset="true"
            requiresQuestionAndAnswer="true"
            passwordFormat="Clear"
           
             applicationName="/" />
      </providers>
    </membership>

   

<!--配置角色管理器-->

    <roleManager enabled="true" defaultProvider="AspNetRoleProvider" >
      <providers>
        <remove name="AspNetSqlRoleProvider" />
        <add name="AspNetRoleProvider"
             connectionStringName="LocalSqlServer"
             type="System.Web.Security.SqlRoleProvider,System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
             applicationName="/" />
      </providers>
    </roleManager>

------------------------------

------------------------------

<!--定义登陆页面-->

<authentication mode="Forms">
<forms name="AuthCookie_travel_manage" loginUrl="LoginTravel.aspx"
   timeout="120" />
</authentication>

    </system.web>

<!--配置角色目录权限-->

<location path="manage">
    <system.web>
      <authorization>
        <deny users="?" />
        <deny roles="administrator" />
        <allow roles="common_user" />
      </authorization>
    </system.web>
</location>

2.运用Membership API,用户可在合适的地方创建角色,代码如下

        if(!Roles.RoleExists("administrator"))
          Roles.CreateRole("administrator");
        if (!Roles.RoleExists("common_user"))
        Roles.CreateRole("common_user");

    当然Membership也提供大量的其他接口,来为我们实现一个完整的用户管理系统提供强有力的支持,在此就不做展开了

3.实现用户登陆

   //其他代码忽略,此处是点击登陆按钮后的操作,在这里,我们创建本地cookies凭证,从而成功登陆系统

    protected void Button2_Click(object sender, EventArgs e)
    {
        string username = myname.Text;
        string password = mypass.Text;

        if (Membership.ValidateUser(username, password))

        {
            //FormsAuthentication.SetAuthCookie(username,true);
            FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(60), false, "");
            string encryptedTicket = FormsAuthentication.Encrypt(authTicket); // 现在对票证进行加密。

            HttpCookie authCookie =new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);                                          
            Response.Cookies.Add(authCookie);                              
            Response.Redirect("manage/index.aspx");
           
        }
        else
        {
            Response.Write("失败");
        }
    }

[注]:ASP.NET2.0提供了一套建立在Membership API之上的实现用户管理的控件,包括登陆,注册,密码找回,密码修改等丰富功能,基本能满足大部分的简单的用户管理要求,用户可以在此基础上进行扩展,也可以直接操作Membership API,实现自己的这些模块。

posted on 2008-11-17 07:46  入心  阅读(550)  评论(0编辑  收藏  举报