0

ASP.NET Web 应用程序的客户(客户)是公司,每家公司可能有许多可以访问该站点的用户。

因此,例如 CompanyA 订阅该站点以使用该站点的服务。立即创建该公司的超级用户。然后,该超级用户有权创建更多有权访问该站点的 CompanyA 用户。

因此,一般来说,每个用户都由 CompanyName 和 UserName 标识

典型的 ASP.NET 表单身份验证提供自动登录和注册功能,但仅使用用户名和密码字段。

.NET 框架是否提供了一种在 Login 和 Register 控件中包含CompanyNameCompanyPassword字段的方法?

公司和初始超级用户也可以由站点管理员在系统中注册。

实际上,我想要在提供的 .NET Login 控件中包含一个CompanyName字段,而不仅仅是 Username 和 Password

是否有 .NET 框架的方式来做到这一点,还是我必须自定义代码?在后一种情况下,最佳做法是什么?

4

2 回答 2

3

您的方案根本不需要公司名称。只要用户名是唯一的列,您就应该能够查找该用户所属的公司。您所需要的只是一个 user_company 表,它将用户名链接到公司 ID。创建超级用户后,您就知道他所属的公司,当他创建用户时,您还知道该用户将属于哪个公司。在登录页面上,您仍然只需要询问用户名和密码;当然,如果您不想让来自不同公司的用户使用相同的用户名,我认为这是合理的,并且是简单的折衷方案。

于 2012-05-25T10:43:17.667 回答
1

您可以将任何预先存在的或计划的身份验证方案用于 ASP.Net Forms 身份验证。

请参阅MSDN中的这个(过度简化)示例,如果您愿意,您甚至可以对身份验证方案进行硬编码 -不是您应该这样做,但它为您提供了总体思路。

如果您想使用ASP.net Membership,Microsoft 会为您提供(您不必这样做)。如果您使用它(包括您提到的数据库),它具有您需要的所有脚手架,并且默认情况下由 Forms Authentication 使用(非排他性)。

于 2012-05-25T14:23:04.720 回答