ASP.NET成员资格-用于跟踪附加信息的设计

ASP.NET成员资格-用于跟踪附加信息的设计,asp.net,database-design,web-applications,asp.net-membership,Asp.net,Database Design,Web Applications,Asp.net Membership,我正在为一个公共站点开发一个ASP.NET4.0/C应用程序,该应用程序只需要对在相关业务部门工作的员工进行身份验证。这个想法是为了让网站有一个CMS,这样员工就可以进入并更改某些内容,而无需使用任何html 我的问题与ASP.NET成员资格提供程序的设计和使用有关。我不想让网站与现有的数据库一起工作,所以没有必要为此创建我自己的会员资格提供商。但是,由于每个用户都是员工,因此我希望跟踪其他信息,例如姓名和办公室号码。我可以想出两种显而易见的方法来实现这一点: 使用默认的SqlMembershi

我正在为一个公共站点开发一个ASP.NET4.0/C应用程序,该应用程序只需要对在相关业务部门工作的员工进行身份验证。这个想法是为了让网站有一个CMS,这样员工就可以进入并更改某些内容,而无需使用任何html

我的问题与ASP.NET成员资格提供程序的设计和使用有关。我不想让网站与现有的数据库一起工作,所以没有必要为此创建我自己的会员资格提供商。但是,由于每个用户都是员工,因此我希望跟踪其他信息,例如姓名和办公室号码。我可以想出两种显而易见的方法来实现这一点:

  • 使用默认的SqlMembershipProvider类。因此,我需要将适当的表添加到数据库中,并为要存储的任何“附加”信息创建一个单独的表。这有效地在用户表上创建了一个垂直分区,因为我将使用asp.net分配的userID作为employee表的主键。为了检索“附加”信息,我可以向提供者询问当前用户的信息,并在我想知道其他信息时重新查询数据库

  • 为所有员工信息(包括登录名和密码)创建一个表,并使用我想要的功能创建我自己的自定义MembershipProvider和MembershipUser类

  • 我也考虑过使用个人资料来存储这些信息,但是,该网站将公开包含员工列表,这些页面将需要访问其中一些信息。因此,我可能应该缓存这些数据,而使用概要文件提供的序列化字段似乎会导致问题


    因此,纯粹就设计而言。。。最好区分用户和员工,使用默认的SqlMembershipProvider和关联表,还是编写我自己的用户表来存储我需要的信息以及我自己的MembershipProvider来访问这些信息?

    我正在做类似的事情,使用您的选项1。这对我很有用

    我的业务逻辑有一些改变用户的功能。它知道何时触摸我的用户表或会员资格功能


    为这类事情使用自定义成员资格提供程序将为您提供比预期更多的工作。

    SQL表配置文件提供程序()将帮助您做到这一点。
    您将获得配置文件的强大功能,同时不必担心缓存或序列化,因为此提供程序将配置文件信息存储在clear数据库表中,而不进行任何序列化。您可以在查询中直接使用它们。

    如果我正确理解您的问题,您希望在ASP.NET成员资格中存储其他用户信息。我已经使用以下设置创建了许多站点

  • 使用aspnet_regsql.exe工具安装默认的.NET成员身份
  • 创建具有uniqueidentifier(PK)UserID列的UserProfile表,该列通过外键链接到aspnet_Users表
  • 要访问该信息,您只需要特定用户的UserId,然后可以查询自定义表以获取更多信息
  • 微软已经写了一篇关于如何做到这一点的文章

    祝你好运


    M

    您不想使用他们的广告进行身份验证、办公室号码等吗?是的,如果我使用的是Windows身份验证。不过,他们的工作计算机不一定在同一个网络上,所以表单身份验证更有意义。谢谢,M。看起来大家的共识是选项1,这篇文章在实现它时是一个很好的参考。