我在 mvc4 项目的 url 路由中遇到问题
我在网站上为用户开发了一对一的消息聊天,网址是
http://localhost:56275/Message?recieverUsersId=0
现在如果有人打开 recieverUsersId=1 会发生什么,它会显示 userid=1 的所有消息
我希望这个网址应该是这样的
http://localhost:56275/Message
或用户 ID 应采用加密形式
我在 mvc4 项目的 url 路由中遇到问题
我在网站上为用户开发了一对一的消息聊天,网址是
http://localhost:56275/Message?recieverUsersId=0
现在如果有人打开 recieverUsersId=1 会发生什么,它会显示 userid=1 的所有消息
我希望这个网址应该是这样的
http://localhost:56275/Message
或用户 ID 应采用加密形式
永远不要相信用户输入。为此,您必须依靠您的身份验证和授权机制。ASP.NET MVC 在模板中有很多实现。只需使用其中一个或将其扩展到您自己的需要。User
然后,您可以从任何操作方法内的属性中获取用户 ID 。您可以观看这些Pluralsight 视频,了解如何在您的应用程序中使用它。
只是将 ID 从get
查询字符串移动到post
正文不会阻止人们阅读其他人的聊天消息。
如果您要传回用户 ID,则需要对其进行加密(一种方式),在这种情况下,您可以进行比较和使用。
如果您不需要或不想加密用户 ID 以供客户端使用,那么...
根据您的身份验证方案,在您的控制器中,您可以User
转换为适当的Identity
类型,或者确保在登录时将当前用户 ID 存储在会话中,然后从那里读取它。获得用户 ID 后,您可以将其传递给您的 DAL/Repository/Service/... 以获取此特定用户的聊天消息。
然后你可以有route
这样的:
routes.MapRoute(
"MyMessageRoute",
"Message",
new { controller = "ctrlName", action = "MyMessages" }
);
使用相应的Action
调用MyMessages()
来检查用户 ID。