觉得05里的MemberShip和Roles功能可以帮我们省略很多会员/权限/等方面的构架和编码.
但是自带的数据库字段有限,我们只有对其进行扩展才能满足自己系统的需求.
研究了一下.不知道怎么解决这些问题.
1、扩展信息是利用自带的Profile来保存,还是通过建立新表做关联来保存?
   我认为中大型系统做新表比较合理。因为Profile存储的字段长度有限,而且在数据库存储的形式不明了。2、显示用户列表时候,默认的GetAllUsers()是返回的MemberShipUserCollection,而MemberShipUser实体的属性都是默认的。那么如果我要显示列表中需要显示扩展信息,如 公司名,联系人等这些信息时候怎么做?  是拓展MemberShipUser还是就对MemberShipUserCollection遍历然后逐一去读取公司名,然后再组成一个DataTable再绑定?3、现在的会员搜索方式有限,比如只有GetUserNameByEmail(),GetUser(),GetAllUsers()等几个方法,如果我要根据其它字段去搜索,比如公司名,联系人等。如何去拓展?希望能得到大家的帮助。

解决方案 »

  1.   

    MemberShip实际上是一个静态类,你可以创建新的静态类来封装MemberShip类,在这个新的静态类中添加按公司名,联系人查找用户的方法。
    实现自己的MemberShipProvider可以让你自定义数据库表结构]
    自定义信息如果想按照自己的方式存储,可以实现自己的ProfileProvider
    通过继承MembershipUser类来创建新类可以实现公司名,联系人等信息的存取(要结合自定义MemberShipProvider)
      

  2.   

    感谢:vivianfdlpw() 
    如此,还得改变表结构和改造存储过程。照这样的模式和工作量,和做自己的用户系统没什么2样了
      

  3.   

    以前download过微软的一个支持access数据库的membership类,里面是开源的,可以下载下来看看。
      

  4.   

    需要用 Membership + Profile来实现,不需要自己扩展
      

  5.   

    How to add a Login, Roles and Profile system to an ASP.NET 2.0 app in only 24 lines of codehttp://weblogs.asp.net/scottgu/archive/2005/10/18/427754.aspx
      

  6.   

    http://ugoer.cnblogs.com/archive/2005/09/17/238978.html
    http://www.15seconds.com/issue/050216.htm
    http://www.codecomments.com/ASP_.NET_Security/message732312.html
    http://www.eggheadcafe.com/forums/ForumPost.asp?ID=48746&INTID=17