2015-04-12 19 views
5

Ich bin neu in Web-API und ich habe ein Problem mit dem Namen der angemeldeten Benutzer innerhalb meiner Post-Methode bekommen. Ich benutzeRequestContext.Principal.Identity.Name ist leer in Web-API 2 Beitrag

RequestContext.Principal.Identity.Name 

Dies scheint jedoch nur eine leere Zeichenfolge zurückgeben. Es funktioniert gut in meiner Get-Methode, aber nicht in der Post. Hier ist meine gesamte Methode

[Route("receive")] 
     [HttpPost] 
     public HttpResponseMessage Receive(PostmarkInboundMessage message) 
     { 
      if (message != null) 
      { 
       // To access message data 
       var headers = message.Headers ?? new List<Header>(); 

       // To access Attachments 
       if (message.Attachments != null) 
       { 
        var attachments = message.Attachments; 

        var c = new CVService(); 
        var user = string.IsNullOrEmpty(RequestContext.Principal.Identity.Name) ? "unknown" : RequestContext.Principal.Identity.Name; 

        c.UpdateLog(user); 

        foreach (var attachment in attachments) 
        { 
         // Access normal members, etc 
         var attachmentName = attachment.Name; 

         // To access file data and save to c:\temp\ 
         //if (Convert.ToInt32(attachment.ContentLength) > 0) 
         //{ 
         // byte[] filebytes = Convert.FromBase64String(attachment.Content); 
         // var fs = new FileStream(attachmentSaveFolder + attachment.Name, 
         //         FileMode.CreateNew, 
         //         FileAccess.Write, 
         //         FileShare.None); 
         // fs.Write(filebytes, 0, filebytes.Length); 
         // fs.Close(); 
         //} 
        } 
       } 

       // If we succesfully received a hook, let the call know 
       return new HttpResponseMessage(HttpStatusCode.Created); // 201 Created 
      } 
      else 
      { 
       // If our message was null, we throw an exception 
       throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent("Error parsing Inbound Message.") }); 
      } 
     } 

Jede Hilfe wird sehr geschätzt werden.

Antwort

0

Seien Sie sicher, dass Sie den Header (Token) in beiden Methoden GET und POST und auch, setzen die schicken [autorisieren] Filter in beiden Verfahren oder die Steuerung selbst, so dass Sie abgelehnt werden, wenn das Token nicht der Fall zu sein senden Sie