Um meine Web-api zu sichern, ich habe eine [Authorize]
vor der Aktion Erklärung in folgender Weise hinzugefügt:Aufruf [autorisieren] web api Aktionen von Ajax
[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 };
}
Als ich die api als localhost/api/getvPaymentDues
es nennen, ist richtig sagen, dass {"Message":"Authorization has been denied for this request."}
Meine Frage ist, wie die Werte in der Anfrage senden (wenn von Ajax getan) für meine Web-API, um autorisiert werden?
Das hängt davon ab, wie Sie Ihre Authentifizierung eingerichtet haben. In jedem Fall muss sich die API authentifizieren (oder ein Token dafür generieren) und das Token mit der Anforderung übergeben lassen: in der Regel über Header für API-Anforderungen. – Rob
Sie müssen die Authentifizierung für Ihre API implementieren. Ich schlage vor, Sie gehen mit Bearer Token, wie es Web API gut passt. Ich mag diese Art von Implementierung, werfen Sie einen Blick auf: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/ –