C# 从ajax调用[Authorize]web api操作
为了保护我的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
[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。我喜欢这种类型的实现,看看: