簡體   English   中英

如何讓asp.net身份登出工作?

[英]How to get asp.net identity logout to work?

我決定第一次在我的網站上使用asp.net身份。 我試圖從我的視圖創建一個簡單的注銷鏈接。 當我點擊鏈接時,我收到錯誤“服務器錯誤'/'應用程序。請求的URL:/帳戶/注銷”。 在這一點上,在我看來,代碼是正確的,但顯然有些錯誤。 任何幫助,將不勝感激。

控制器:

// POST: /Account/Logout
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Logout()
{
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie, DefaultAuthenticationTypes.ExternalCookie);
    Session.Abandon();
    return RedirectToAction("Login", "Account");
}

索引視圖:

<div id="sidebar-nav" class="sidebar">
    <div class="sidebar-scroll">
        <nav>
            <ul class="nav">
                <li><a href="@Url.Action("Index", "Home")" class="active"><i class="lnr lnr-home"></i> <span>Dashboard</span></a></li>
                <li>
                    <a href="#subPages" data-toggle="collapse" class="collapsed"><i class="lnr lnr-file-empty"></i> <span>Reports</span> <i class="icon-submenu lnr lnr-chevron-left"></i></a>
                    <div id="subPages" class="collapse ">
                        <ul class="nav">
                            <li><a href="@Url.Action("Index", "Home")" class="">Fulfillment</a></li>
                            <li><a href="@Url.Action("Index", "Home")" class="">Report</a></li>
                            <li><a href="@Url.Action("Index", "Home")" class="">Report</a></li>
                        </ul>
                    </div>
                </li>
                <li><a href="@Url.Action("Logout", "Account")" class=""><i class="lnr lnr-dice"></i> <span>Logout</span></a></li>
            </ul>
        </nav>
    </div>
</div>

在索引視圖中單擊注銷鏈接時,它將返回上述錯誤。

預期的結果是鏈接在控制器中調用Logout方法並重定向到Login頁面。

由於您通過單擊來訪問鏈接,因此您應該使用[HttpGet]而不是[HttpPost]來歸因您的端點,因為這是您正在進行的請求的類型。

您還應該將防偽令牌添加到您的站點,因為您通過使用[ValidateAntiForgeryToken]適用於POST請求 )歸因於該方法來驗證它

如果您不想這樣做(或者當您發出GET請求時),請刪除注釋,否則將以下內容添加到表單中以生成一個:

@Html.AntiForgeryToken()

這反過來將呈現類似於以下內容的輸入:

<input name="__RequestVerificationToken" type="hidden" value="CfDJ8NrAkS ... s2-m9Yw">

在這里閱讀更多關於AntiForgery令牌的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM