0

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

所以假设用户有一个产品。当他们转到 EditProduct 操作时,我怎样才能阻止其他人访问它?在过去,我总是使用User.Idenity.Namedthat 并将其与他们的用户名进行比较。但是,如果有人登录username而不是UserName那么即使是同一用户,案件也会中断。

在每张支票上使用.ToUpper()或类似的东西似乎非常脆弱和低效。

4

2 回答 2

1

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

[Authorize(Users = "username")]

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

[Authorize(Roles = "Administrator")]
于 2012-05-07T18:46:49.743 回答
1

String 具有 Equals 的属性:

User.Identity.Name.Equals("OtherName",StringComparison.CurrentCultureIgnoreCase)
于 2012-05-07T18:47:29.213 回答