簡體   English   中英

用戶通過身份驗證時調用Web Api方法

[英]Calling a Web Api method when user is authenticated

驗證用戶身份時,我在調用Web Api方法時遇到問題。

事實是,當我通過用戶身份驗證時調用Web Api方法時,它不會重新組織。

以前,我在AccountController中有Logout方法的問題。 我通過使用AllowAnonymous屬性解決了它。

但是,現在我面臨着ChangePassword方法的相同問題。 在這種情況下,我無法添加AllowAnonymous屬性,因為當我這樣做時,我無法檢索已登錄的用戶ID。

如果我不添加AllowAnonymous屬性,系統將拋出一個禁止的錯誤。

我被困在這里...如何解決?

例如,這是AccountController中的ChangePassword方法:

    // POST api/Account/ChangePassword
    [Route("ChangePassword")]
    public async Task<IHttpActionResult> ChangePassword(ChangePasswordBindingModel model)
    {
        if (!ModelState.IsValid)
        {
            // return BadRequest(ModelState);
            return Json(GetModelErrorMessages());
        }

        try
        {
            IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword,
                model.NewPassword);

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }
        }
        catch(Exception ex)
        {

        }

        return Ok();
    }

謝謝海梅

問題是由於我沒有隨請求發送承載令牌。

            var tokenKey = 'accessToken';
            var token = sessionStorage.getItem(tokenKey);
            var headers = {};
            if (token) {
                headers.Authorization = 'Bearer ' + token;
            }

            $.ajax({
                type: 'POST',
                url: "/api/Account/ChangePassword",
                data: JSON.stringify(data),
                headers: headers,
                contentType: 'application/json; charset=utf-8'
            })

現在可以了。

問候

海梅

暫無
暫無

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

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