最近看了一下asp.net2的用户管理模型,个人感觉他的确提供了很集成化的功能,对于一般的应用可以很傻瓜式的达到要求。但是在使用中也有以下几点疑问:1、无论我怎么配置,用户数据还是存储在app_data文件夹aspnetdb中,怎么让他存储在server的数据库中呢,比如我在server的myappDB数据库中也同样构造了aspnetdb中的表和存储过程?2、如果我要在现有用户表上扩展功能,我还能使用MemberShip类实现吗?比如,我要记录用户的登录次数(目前aspnetdb用户表似乎没有这个),或者说每个用户都有一个账户余额,并且在创建用户的时候将为每个用户给定一个可能不同的初始余额,在登录的时候将会根据余额来判断用户能否登录成功。那么这个时候MeberShip.CreateUser(),Login控件等还有用吗,或者说怎么最大化的使用原有的方法。同时,MemberShip.DeleteUser似乎是物理删除数据(不是用IsDeleted字段),这个在应用中好像一般不是这样吧。上面的疑问主要是vs2005新的Login系列控件的实用性问题,欢迎大家讨论并给出一点建议和思路。

解决方案 »

  1.   

    1. you can customize the connection string in web.config2. consider to write a custom membership providersee
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/bucupro.asphttp://www.15seconds.com/issue/050216.htm
      

  2.   

    saucer(思归) ( ) 真实热心,谢谢!1、可能是我太笨,我参考了网上很多方法,比如修改IIS中的asp.net选项卡的编辑属性的LocalSqlServer配置,但是只要我拖拽Login控件进行网站配置,新的用户还是在app_data下面的aspnetdb中2、我本来想写三点疑问的,第三点就是继承 MeberShipProvider 类来解答2、的疑问,但是,比如MeberShipProvider 的CreateUser方法返回的是 MembershipUser 类,其参数也已经固定了,当然这些都是可以修改的,但对于我来说(相信不少人也一样),重新实现这些东西比我按照原有的思路实现(不使用Login系列控件)要困难多了  :(
    我很想看看 CreateUser的实现,但我最终只能跟踪到这里:
    return Membership.Provider.CreateUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
      

  3.   

    change web.config, seehttp://msdn2.microsoft.com/en-us/library/dazakw52.aspxmake sure you have 
    <remove name="AspNetSqlProvider" />
      

  4.   

    <remove name="AspNetSqlProvider" />OK,thanks a lot.