有两个函数,假设让我们实现,那么怎样处理异常情况呢?
Roles.AddUserToRole(user, role); 在user已经是role的情况下应当怎样?
Roles.RemoveUserFromRole(user, role); 在user已经不是role的情况下应当怎样?以前遇到过这类情况,在这两种情况下都会自然放行,因为目的已经达到了,为何要考虑以往的情况呢?但实际上这两个函数都是asp.net中自带的函数,且分别会返回两个exception。
从技术实现的角度看,这样非常多余,但从应用的角度看,越想越有道理。
假设这是一个应用系统,现在底层代码收到了一个指令为一个用户授权或解授权,而此人已经被授权或解授权,极有可能表明在判断逻辑上出了问题,并进而导致在View上显示的授权情况有误,并因此生成了本不该有的操作链接(本人用的是MVC,链接即操作)。这件事情有必要提醒使用者:你看到的表象和实际情况有差异!而不是简单地从技术上解决了之,否则其他地方必定也存在什么错误的授权情况。
点击下载免费的敏捷开发教材:《》