0

我正在构建一个小型应用程序,它将有多个使用 ASP.NET MVC 的用户,但我不确定如何在下面的场景中处理用户授权。由于我仍在学习,我可能会遗漏一些明显的东西,所以任何建议都值得赞赏。

基本上,为了说明我的问题,请考虑我正在构建一个非常小的电子邮件,例如消息传递系统。这是阅读消息的操作:

/Message/ReadMessage/1

其中Message是控制器,ReadMessage是操作,1是 MessageId。

现在这条消息是给“Bob”的,他的 UserId 与消息一起存储在数据库中。另一个名为“Fred”的用户也收到了一条消息,消息 ID 为 2。

在我的应用程序中,Bob 无法直接或通过链接在页面上看到 Fred 的消息(消息应该对每个用户都是私有的),所以对我来说保护 Bob 的最佳方法是简单地更改 MessageId URL 手动从 1 到 2 并查看 Fred 的消息?

作为对此的当前解决方案,我在控制器操作开始时进行了一个非常简单的检查,它将与消息一起存储的 UserId 与当前 UserId 进行比较,如果它们不匹配,则重定向用户(也就是说,他们的收件箱)。

对于这种情况,这是一个合适的解决方案吗?我觉得虽然这现在有效,但它不是解决这个问题的最佳方法。谢谢您的帮助。

4

1 回答 1

0

您的控制器需要检查当前用户是否被允许访问资源(在这种情况下为消息)

于 2013-02-22T10:48:43.470 回答