如果我想保护除一个用户以外的所有人访问的操作,我该怎么做?
所以,让我们说用户有产品。当他们转到EditProduct操作时,如何阻止其他人访问它?在过去,我总是使用User.Idenity.Name
并将dthat与其用户名进行比较。但是,如果有人以username
而不是UserName
登录,那么即使案例属于同一用户,案例也会中断。
在每次检查中使用.ToUpper()
或类似的东西似乎非常脆弱和低效。
答案 0 :(得分:1)
您可以将Authorize属性放在动作上方,如下所示:
[Authorize(Users = "username")]
我不完全确定它是否区分大小写,但这是保护操作和控制器的最佳方法。此外,您可以使用角色:
[Authorize(Roles = "Administrator")]
答案 1 :(得分:1)
String具有Equals:
的属性User.Identity.Name.Equals("OtherName",StringComparison.CurrentCultureIgnoreCase)