C# 授权标记未重定向到正确的控制器

C# 授权标记未重定向到正确的控制器,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有一个控制器,它有两个动作,登录,不带任何装饰器,和登录带[HttpPost]装饰器 代码: 我面临的问题是:当我尝试使用[Authorize]decoratorASP.NET MVC访问方法时,没有使用[HttpPost]decorator重定向到我的登录操作 出于测试的目的,我使用Post创建了一个名为LogOn的表单,它运行正常。所以我想问题在于我使用装饰器的方式 我的web.config: <authentication mode="Forms"> &l

我有一个
控制器
,它有两个动作,
登录
,不带任何装饰器,和
登录
[HttpPost]
装饰器

代码:

我面临的问题是:当我尝试使用
[Authorize]
decorator
ASP.NET MVC
访问方法时,没有使用
[HttpPost]
decorator重定向到我的
登录操作

出于测试的目的,我使用
Post
创建了一个名为
LogOn
的表单,它运行正常。所以我想问题在于我使用装饰器的方式

我的
web.config

    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

你知道我做错了什么吗

我面临的问题是:当我尝试使用 [授权]装饰程序ASP.NET MVC未重定向到我的登录 使用[HttpPost]装饰程序执行操作

当然不会。根据最基本的定义,重定向意味着GET请求。您不可能期望能够重定向到只能使用POST谓词访问的控制器操作。那是不可能的


除此之外,为什么您希望受保护的资源将您重定向到一个控制器操作,该操作应该验证您的凭据。人们通常期望的是,当有人试图访问受保护的资源时,他会被重定向到控制器操作,该操作将呈现一个登录表单,用户可以在其中输入他的凭据,将此表单提交给相应的POST操作进行验证,如果他的凭据有效,POST操作将发出表单验证cookie,并将他重定向回返回url,该url指向他最初请求的受保护资源。

我理解您的解释,我发现我并不真正理解这是怎么回事。谢谢
    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>