Asp.net mvc 允许未经授权的帖子执行操作

Asp.net mvc 允许未经授权的帖子执行操作,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我有一个始终可见的“添加到购物车”按钮,但需要身份验证才能将项目实际添加到购物车。所以现在,AddToCart操作有一个authorized属性。因此,当有人单击该按钮时,会向该操作发送一条POST,从而重定向到登录屏幕。在登录之后,会自动向我想要发布的页面发出GET请求 有没有更好的处理方法 我可以灰色显示“添加到购物车”按钮,并显示“登录添加到购物车”的消息,但这看起来很难看,也不太友好 我可以将重定向代码更改为查找某个URL,然后POST发布到该URL,但这似乎有点骇人听闻 我可以允许一个

我有一个始终可见的“添加到购物车”按钮,但需要身份验证才能将项目实际添加到购物车。所以现在,
AddToCart
操作有一个
authorized属性。因此,当有人单击该按钮时,会向该操作发送一条
POST
,从而重定向到登录屏幕。在登录之后,会自动向我想要发布的页面发出GET请求

有没有更好的处理方法

我可以灰色显示“添加到购物车”按钮,并显示“登录添加到购物车”的消息,但这看起来很难看,也不太友好

我可以将重定向代码更改为查找某个URL,然后
POST
发布到该URL,但这似乎有点骇人听闻

我可以允许一个
GET
到URL,这样当它重定向时,它就可以工作了,但是
GET
不应该改变数据


您知道如何最好地处理这种情况吗?

当客户端未登录时,您可以更改按钮以指向其他操作!你可以覆盖MVC5上的过滤器,但我会在这里使用@Fals,并将帖子发送到另一个url(一些可以处理该问题的临时字符控制器),以避免干扰安全性。