从来没有使用过forms身份验证,今天简单看了看
有几个疑问,使用forms身份验证,是不是不能使用自己的用户数据库表了?
如果必须使用forms身份验证自带的用户数据表,那灵活性不就很差?
最后一个疑问,他的优点和缺点分别是什么?

解决方案 »

  1.   

    当然可以,有好多例子,你可以使用他生成的数据库不过好像最好是sql的
    Access原来的sample有一些bug不知道修正没有, 也可以用自己的,就是得自己填代码了生成的可以直接支持web parts, theme比较方便,自己的控制起来比较灵活
      

  2.   

    比如
      protected void btnSubmit_Click(object sender, System.EventArgs e)
      {   
       if(UserName.Text=="xxxx" && PassWord.Text == "xxx") //这行完全可以使用自己的数据库数据替代
       {
        FormsAuthentication.SetAuthCookie(UserName.Text,chkRememberMe.Checked,"/");
        FormsAuthentication.RedirectFromLoginPage(UserName.Text,chkRememberMe.Checked);
       }
      }
      

  3.   

    如果我们需要为网站创建一套自定义的用户注册系统,那么基于表单的身份验证(下称表单验证)是非常合适的。因此,我们可以使用任何的载体来存储用户名和密码(比如配置文件或者数据库)。表单验证通过cookie来判断用户票据,如果一个没有通过身份验证的用户请求一个页面,那么他会被自动转到登录页面,用户登录后又会转到原来的请求页面。
    表单验证不负责提供完整的登录的验证、用户注册等操作,它仅仅对用户进行身份验证,将未经身份验证的用户重定向到登录页,并执行所有必要的 Cookie 管理。
      

  4.   

    最简单的方式就是可以使用web.config配置<forms
       name=".ASPXAUTH"
       loginUrl="MyLogin.aspx"
       defaultUrl="Download/Download.aspx">
       <credentials passwordFormat="Clear">
        <user name="test" password="test"/>
      </credentials>
    </forms>    protected void btn_Login_Click(object sender, EventArgs e)
    {
        if (FormsAuthentication.Authenticate("test", "test"))
            FormsAuthentication.RedirectFromLoginPage("test", cb_RememberMe.Checked);
        else
            Response.Write("用户名或者密码错误");
    }或者你可以使用自己的数据库,当然使用2。0的成员资格也是不错的选择
      

  5.   

    非常感谢:
    net_lover(【孟子E章】)
    LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 
    耐心细致的回答。谢谢