Asp.net mvc ASP.net MVC无法调用注销后方法

Asp.net mvc ASP.net MVC无法调用注销后方法,asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,我一直在尝试使用cookies执行注销操作表单身份验证,但无法调用注销后操作方法 以下是我的部分观点: <nav class="navbar navbar-inverse" role="navigation"> <div class="container"> <div class="nav navbar-nav navbar-right"> @using (Html.BeginForm("Logoff", "Account", Form

我一直在尝试使用cookies执行注销操作表单身份验证,但无法调用注销后操作方法

以下是我的部分观点:

<nav class="navbar navbar-inverse" role="navigation">
  <div class="container">
    <div class="nav navbar-nav navbar-right">
      @using (Html.BeginForm("Logoff", "Account", FormMethod.Post, new { id = "logoutForm" })) 
     { 
     @Html.AntiForgeryToken()
      <a class="navbar-brand" href="javascript:document.getElementById('logoutForm').submit()" title="Logout">
        <img alt="Home" src="@Url.Content(" ~/Images/logout.png ")"/>

      </a>
      }

    </div>

  </div>

</nav>
因此,在单击主页上的注销按钮时,它应该转到注销操作方法并清除cookies,然后重定向到登录页面。 但它不起作用。 相反,它直接进入登录页面,而不访问注销操作方法。我得到了这个网址:


任何人都可以提供有关如何实现此功能的信息吗?

请尝试下面的代码,希望能有所帮助

<a class="navbar-brand" href="javascript:submitform()" title="Logout">
    <img alt="Home" src="@Url.Content(" ~/Images/logout.png ")"/>
  </a>


 <script type="text/javascript">
  function submitform()
  {
    $("#logoutForm").submit();
  }   
</script>

我知道你已经在这个过程中走得很远了,但是你可以在你的动作控制器中使用WebSecurity方法而不是你的动作方法。。。OathWebsecurity,Web安全。注销;。。。etc

当您试图访问的页面需要身份验证且您未经身份验证或权限不足时,通常会收到/Account/Login?ReturnUrl=blah。在这种情况下,注销操作方法需要身份验证才能访问它,可能需要进行身份验证。注销在注销过程中删除身份验证cookie-尝试使用AllowAnonymousAttribute标记注销操作方法。添加[AllowAnonymous]属性对我有效。谢谢Tetsuya。添加[AllowAnonymous]是没有意义的。这意味着你一开始从未登录过,那么登录有什么意义呢out@StephenMuecke谢谢你提供的信息。这里是故障:当我单击注销按钮时,没有任何[Authorize]或[AllowAnonymous]属性,我的注销操作方法不会被访问,而是会调用Login GET操作方法。因此,下面的场景正在发生:Login GET->LoginPOST->Home Page单击Home Page上的logout按钮->Login GET它应该是这样的:Login GET->LoginPOST->Home Page单击Home Page上的logout按钮->LogoffPOST因此,调用GET而不是POST。请提出一些建议?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Logoff()
{    
      FormsAuthentication.SignOut();
      Session.Clear();
      return Redirect(FormsAuthentication.LoginUrl);                
}
<a class="navbar-brand" href="javascript:submitform()" title="Logout">
    <img alt="Home" src="@Url.Content(" ~/Images/logout.png ")"/>
  </a>


 <script type="text/javascript">
  function submitform()
  {
    $("#logoutForm").submit();
  }   
</script>