我有一个登录程序,可能会导致多个结果:
我正在考虑如何设计方法.我看到了这些选择
每种可能性的一种方法(如IsUserActivated,IsUsernameKnown ..).这似乎违反了"告诉不要问"的原则,我不知道我只是不喜欢它.
为每种可能性抛出自定义异常(如UserNotActivatedException,UserUnknownException ..).这对我来说似乎也是错的.
返回自定义ValidationResult类
返回自定义枚举
想法?:-)
也可以随意编辑主题(和标签)
我会选择最后一个,你不需要一个完整的课程,一个枚举就足够了.
但是,您是否计划告诉用户他们的密码错误?这允许黑客验证他们正在使用正确的登录,只需要找到正确的密码.更安全的选择是始终告诉用户他们的登录失败,而不是指定它是用户名还是密码.