Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ajax调用[Authorize]web api操作_C#_Asp.net Web Api - Fatal编程技术网

C# 从ajax调用[Authorize]web api操作

C# 从ajax调用[Authorize]web api操作,c#,asp.net-web-api,C#,Asp.net Web Api,为了保护我的web api,我以以下方式在操作声明之前添加了一个[Authorize]: [Route("api/getvPaymentDues")] [HttpGet] [Authorize] public dynamic getData() { var vPaymentDues = (from recordset in db.vPaymentDues select new

为了保护我的web api,我以以下方式在操作声明之前添加了一个
[Authorize]

[Route("api/getvPaymentDues")]
[HttpGet]
[Authorize]
        public dynamic getData()
        {

            var vPaymentDues = (from recordset in db.vPaymentDues
                                select new DTOvPaymentDue
                                {
                                    UserName = recordset.UserName,
                                    FullName = recordset.FullName,
                                    ContactNum = recordset.ContactNum,
                                    Address = recordset.Address,
                                    AreaName = recordset.AreaName,
                                    ColonyName = recordset.ColonyName,
                                    PackageName = recordset.PackageName,
                                    LastRenewDate = recordset.LastRenewDate,
                                    PackageExpiryDate = recordset.PackageExpiryDate,
                                    InvoiceAmount = recordset.InvoiceAmount,
                                    ReceivedAmount = recordset.ReceivedAmount,
                                    DueInDays = recordset.DueInDays
                            });
            return new { data = vPaymentDues };
        }
当我将api调用为
localhost/api/getvPaymentDues
时,正确的说法是
{“Message”:“此请求的授权已被拒绝”。}

我的问题是如何发送请求中的值(从ajax完成时),以便我的web api获得授权?

回答:

我已经在我的应用程序中添加了身份验证(由cookies授权)。这解决了我的问题

当用户登录时,本地系统中保存了一个cookie,并且(在其生存期内)它正在确保api调用得到验证

这不是一个成熟的解决方案,但解决了我目前的目标

回答:

我已经在我的应用程序中添加了身份验证(由cookies授权)。这解决了我的问题

当用户登录时,本地系统中保存了一个cookie,并且(在其生存期内)它正在确保api调用得到验证


这不是一个成熟的解决方案,但解决了我目前的目标

这取决于您如何设置身份验证。在任何情况下,您都需要让API对自身进行身份验证(或为其生成令牌),并让它将令牌与请求一起传递:通常是通过API请求的头。您需要实现对API的身份验证。我建议您使用承载令牌,因为它非常适合web api。我喜欢这种类型的实现,看看:这取决于您如何设置身份验证。在任何情况下,您都需要让API对自身进行身份验证(或为其生成令牌),并让它将令牌与请求一起传递:通常是通过API请求的头。您需要实现对API的身份验证。我建议您使用承载令牌,因为它非常适合web api。我喜欢这种类型的实现,看看: