想知道我是否可以就解决此身份验证问题的最佳方法获得一些建议。
我有一个商店Web应用程序,由于商店的性质,任何用户都必须通过身份验证才能查看或使用它。所有用户访问商店都是通过一个登录表单。
有4个级别的用户,超级用户(我),商店经理,商店工作人员和客户。
我的问题是每种类型的用户使用哪种类型的身份验证,如果它是基于电子邮件的?或基于某种用户名?
商店经理将来到我们的网站,并创建一个新商店,我很高兴他们应该使用电子邮件地址和密码进行身份验证。然后,商店经理将为商店员工和客户创建帐户。对于客户,我很高兴他们使用电子邮件地址和密码进行身份验证。但是我应该为店员使用什么?我认为将他们的个人电子邮件地址用于纯粹专业的帐户是不合适的,您怎么看?此外,我可以预见经理可以创建一个单独的工人帐户,让它登录,所有工作人员都将使用这一个帐户,所以再次,电子邮件地址是不合适的。
所以这些是我能想到的解决方案,但都有问题:
商店经理创建具有用户名和密码的商店员工帐户。问题在于,因为对网站的所有访问都是通过一次登录进行的,所以他们可能会花费很长时间来尝试查找尚未使用的用户名。
创建商店员工时,会为他们分配唯一的登录ID,例如0002014,并且可以使用密码和密码进行身份验证。问题是登录ID很难记住。
我还考虑过一个用户名,它以某种方式与商店名称相结合(这是唯一的),但却无法想到一种优雅的方式使其工作,例如,它看起来不像电子邮件地址。
任何人都偏好上述?或希望能提出更好的解决方案。谢谢你的阅读。
答案 0 :(得分:1)
我现在使用的大多数基于网络的系统往往是基于用户名和密码的,但是如果我没记错的话,很多人也会使用电子邮件......
另一点是,如果您仔细考虑使用哪些详细信息进行身份验证,还应考虑其他与身份验证相关的方案;这些天我访问的很多网站都记得你的登录详细信息 - 我记不起它们是用户名还是电子邮件。
电子邮件的好处在于它是独一无二的。我认为“强迫”人们使用电子邮件并不是什么大问题 - 这取决于他们使用哪一个。如果他们需要工作相关帐户的电子邮件地址,那么它应该是与工作相关的电子邮件地址 - 但这是他们的问题。
另一个方面是你使用的平台;我非常确定ASP.NET的开箱即用角色和成员资格提供程序默认使用登录用户名。因此,如果您利用现有框架,可能会为您做出某种决定。
最后,就不同的方法而言,还有联合身份验证系统/提供商,比如你可以使用的OpenID - 所以你根本不需要编写很多用户/安全管理的东西 - 而且它如果用户可以重复使用他们已经熟悉的一组凭据,则会使用户更容易。我没有看过它,但我认为可能有类似的东西能够登录像雅虎/谷歌/ FaceBook帐户这样的用户。
答案 1 :(得分:1)
好问题。使用电子邮件对员工来说也是一个很好的解决方案。原因是
现在你可以获得很多免费的电子邮件帐户。因此,不想使用个人电子邮件的员工可以创建一个并使用。
如果商店经理想要为所有人使用一个帐户,那么他可以创建一个公共电子邮件并使用。
如果我们使用电子邮件,可以快速实施重置/忘记密码。
与用户名和电子邮件的混合相比,易于检查用户名可用性。
由于您使用同一页面登录,如果电子邮件是唯一的,则很容易获得登录人员的角色。
希望它有所帮助。