2016-06-22 9 views
1

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?

+1

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

+0

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/ –

Antwort

0

Antwort:

I Identitätsauthentifizierung in meiner Anwendung hinzugefügt haben (autorisiert von Cookies). Das hat mein Problem gelöst.

Wenn sich der Benutzer anmeldet, wird ein Cookie im lokalen System gespeichert und (während seiner Lebensdauer) wird sichergestellt, dass der API-Aufruf authentifiziert wird.

keine vollwertige Lösung, aber löst meinen aktuellen Zweck.

Verwandte Themen