2013-02-22 24 views
0

我正在构建一个小型应用程序,它将有多个用户使用ASP.NET MVC,但我不知道如何处理下面的场景中的用户授权。我可能会错过一些明显的东西,因为我还在学习,所以任何建议都表示赞赏。控制器动作的多用户授权

基本上,为了说明我的问题,考虑我正在构建一个非常小的邮件,如邮件系统。下面是读取消息的操作:

/Message/ReadMessage/1 

消息是控制器,ReadMessage的动作和是的MessageId。

现在这条消息是针对“Bob”的,而在数据库中,他的UserId是与消息一起存储的。另一个叫做“Fred”的用户也收到了一条消息,MessageId为2.

在我的应用程序中,没有办法让Bob直接或通过链接在页面上看到Fred的消息(消息应该是私人的给每个用户),那么对于我来说,保护Bob不是简单地将URL中的MessageId手动从1更改为2并查看Fred的消息,最好的办法是什么?

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

这是适合这种情况的解决方案吗?我感觉到,虽然现在这个问题有效,但这不是解决这个问题的最好方法。谢谢您的帮助。

回答

0

您的控制器需要检查当前用户是否被允许访问资源(本例中为消息)

+0

我目前已经这样做了,所以这很好。感谢你的回答。 – NickK 2013-02-25 10:45:01