2011-05-30 79 views
0

想知道是否可以获得有关解决此身份验证问题的最佳方法的一些建议。Web应用程序身份验证设计问题

我有一个商店网络应用程序,由于商店的性质,任何用户都必须经过身份验证才能查看或使用它。所有用户都可以通过单一登录表单访问该商店。

有4个级别的用户,超级用户(我),店铺经理,店员和顾客。

我的问题是什么类型的认证用于每种类型的用户,它应该是基于电子邮件?或基于某种用户名?

商店经理会来我们的网站,并创建一个新的商店,我很高兴他们应该使用电子邮件地址和密码进行身份验证。商店经理将为店员和顾客创建账户。对于客户来说,我很高兴他们通过电子邮件地址和密码进行身份验证。但是,我应该为店员使用什么?我认为它不适合他们使用他们的个人电子邮件地址作为一个纯粹专业的账户,您怎么看?此外,我可以预见,经理可能会创建一个单一的工作人员帐户,使其登录,并且所有工作人员都将使用这一个帐户,因此再次,电子邮件地址将不合适。

所以这些是我能想到的解决方案,但都有问题:

店长创建具有用户名和密码存储的工人帐户。与此相关的问题是,因为所有对网站的访问都是通过一次登录,他们可能花费很长时间试图找到尚未被使用的用户名。

创建店铺工作人员时,会为其分配唯一的登录标识,例如0002014,并连同密码一起用于验证。问题在于登录ID很难记住。

我还考虑过有一个用户名,它与商店名称(这是唯一的)结合在一起,但想不出一种优雅的方式来使它工作,它看起来不像电子邮件地址。

任何人都有上述偏好?或希望能提出更好的解决方案。谢谢阅读。

+0

你真的需要解释登录吗?让用户用他喜欢的任何东西来填充它。也许这听起来太革命了,但有时你只能使用密码。 – artplastika 2011-05-30 14:36:51

+1

只有密码?没门。使用蛮力更容易 – jgauffin 2011-05-31 13:04:38

回答

1

好问题。使用电子邮件也是雇佣的好方案。原因是

  1. 现在你可以得到很多免费的电子邮件帐户。因此,不想使用个人电子邮件的员工可以创建一个并使用。

  2. 如果商店经理想要为所有人使用一个帐户,那么他可以创建一个普通的电子邮件并使用。

  3. 如果我们使用电子邮件,可以快速实施重置/忘记密码。

  4. 易于检查用户名可用性与用户名和电子邮件的混合比较。

  5. 由于您使用的是同一页面登录,如果电子邮件是唯一的,它很容易获得登录人员的角色。

希望它有帮助。

+0

它确实有帮助,感谢您的意见。 – dangerousdave 2011-05-31 10:33:46

1

大多数基于Web的系统我用这些天往往用户名和密码,根据是,但相当多的使用电子邮件,以及如果我没有记错...

这是另一点,如果你想仔细考虑哪些细节用于身份验证,您还应该考虑其他身份验证相关方案;我今天访问的很多网站都记住了你的登录信息 - 以至于我不记得它们是用户名还是电子邮件。

电子邮件的好处在于它是独一无二的。我认为“强迫”人们使用电子邮件并不是什么大不了的事情 - 这取决于他们使用哪一个。如果他们需要一个工作相关账户的电子邮件地址,那么它应该是一个工作相关的电子邮件地址 - 但这是他们的问题。

另一方面是您使用的平台;我敢肯定,ASP.NET的开箱即用角色和成员资格提供程序默认使用用户名登录。因此,如果您利用现有的框架,可能会为您做出某种决定。

最后,根据不同的方法,还有像您可以使用的OpenID一样的联合身份验证系统/提供程序 - 因此您甚至不需要编写大量的用户/安全管理工具 - 如果用户可以重新使用他们已经熟悉的一组凭据,它将使用户更容易。我没有看过它,但我认为有可能登录Yahoo/Google/FaceBook账户等用户的东西。

+0

Adrian的一些优点,特别是强迫他们使用电子邮件地址。谢谢 – dangerousdave 2011-05-30 15:32:27