使用超过用户名和密码的表单身份验证

时间:2012-05-25 10:34:15

标签: asp.net passwords forms-authentication credentials username

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

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

因此,通常,每个用户都由CompanyName和UserName 标识。

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

.NET框架是否提供了在登录和注册控件中包含 CompanyName CompanyPassword 字段的方法?

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

实际上我想要的是在提供的.NET登录控件中包含 CompanyName 字段,而不仅包括用户名和密码

是否有.NET框架方法可以执行此操作,还是必须自定义代码?在后一种情况下,这是最佳做法吗?

2 个答案:

答案 0 :(得分:3)

您的方案根本不需要公司名称。只要用户名是唯一列,您就应该能够查找用户所属的公司。您只需要一个user_company表,它将用户名链接到公司ID。创建超级用户后,您就知道他所属的公司以及创建用户的时间,您还知道该用户将属于哪个公司。在登录页面上,您仍然只需要输入用户名和密码;当然,如果您不想允许来自不同公司的用户使用相同的用户名,我认为这是合理的,并且为了简单起见,需要进行良好的权衡。

答案 1 :(得分:1)

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

看到这个(过度简化)example from MSDN,如果您选择 - ,您甚至可以对auth方案进行硬编码,但它会为您提供全面的想法。

ASP.net会员资格由Microsoft提供如果您想要使用它(您不需要)。如果您使用它(包括您提到的数据库),它具有您需要的所有脚手架,并且由默认(非排他性)的表单身份验证使用。