确保只有特定用户才能访问

时间:2012-05-07 18:41:30

标签: asp.net-mvc-3

如果我想保护除一个用户以外的所有人访问的操作,我该怎么做?

所以,让我们说用户有产品。当他们转到EditProduct操作时,如何阻止其他人访问它?在过去,我总是使用User.Idenity.Name并将dthat与其用户名进行比较。但是,如果有人以username而不是UserName登录,那么即使案例属于同一用户,案例也会中断。

在每次检查中使用.ToUpper()或类似的东西似乎非常脆弱和低效。

2 个答案:

答案 0 :(得分:1)

您可以将Authorize属性放在动作上方,如下所示:

[Authorize(Users = "username")]

我不完全确定它是否区分大小写,但这是保护操作和控制器的最佳方法。此外,您可以使用角色:

[Authorize(Roles = "Administrator")]

答案 1 :(得分:1)

String具有Equals:

的属性
User.Identity.Name.Equals("OtherName",StringComparison.CurrentCultureIgnoreCase)