2017-11-04 1 views
1

Ich versuche, entspricht ein Profilbild zu meinem Projekt hinzuzufügen, um die erforderlichen formale Parameter ‚Schlüssel‘ von ‚IOwinContext.Get (string)‘ und verfolge ich diesen Artikel https://social.technet.microsoft.com/wiki/contents/articles/34445.mvc-asp-net-identity-customizing-for-adding-profile-image.aspx#Step_4_IdentityModels_cs und in der Artikel dort ist ein Teil, wo ich die Benutzerdetails erhalten muss, um das Bild des Benutzers zu laden. Bei diesem Schritt bekomme ich den Fehler in der Überschrift, was fehlt mir? Es gibt gegeben kein Argument, die

public FileContentResult UserPhoto() 
    { 
     if (User.Identity.IsAuthenticated) 
     { 
      String userId = User.Identity.GetUserId(); 
      if (userId == null) 
      { 
       string filename = 
    HttpContext.Server.MapPath(@"~/Uploads/ProfilePictures/blankprofile.png"); 
       byte[] imageData = null; 
       FileInfo fileInfo = new FileInfo(filename); 
       long imageFileLength = fileInfo.Length; 
       FileStream fs = new FileStream(filename, FileMode.Open, 
       FileAccess.Read); 
       BinaryReader br = new BinaryReader(fs); 
       imageData = br.ReadBytes((int)imageFileLength); 
       return File(imageData, "image/png"); 
      } 
      // to get the user details to load user Image 
      var bdUsers = 
      HttpContext.GetOwinContext().Get<ApplicationDbContext>(); 
      var userImage = bdUsers.Users.Where(x => x.Id == 
      userId).FirstOrDefault(); 
      return new FileContentResult(userImage.ProfilePicture, 
      "image/jpeg"); 
     } 
     else 
     { 
      string fileName  =HttpContext.Server.MapPath(@"~/Uploads/ProfilePictures/blankprofile.png"); 

      byte[] imageData = null; 
      FileInfo fileInfo = new FileInfo(fileName); 
      long imageFileLength = fileInfo.Length; 
      FileStream fs = new FileStream(fileName, FileMode.Open, 
      FileAccess.Read); 
      BinaryReader br = new BinaryReader(fs); 
      imageData = br.ReadBytes((int)imageFileLength); 
      return File(imageData, "image/png");    
     } 

    } 
+0

nach dieser https://stackoverflow.com/questions/ 23881489/how-to-get-applicationdbcontext-out-of-the-owin-Pipeline muss ich eine using-Anweisung hinzufügen, aber ich habe bereits und nach IntelliSense es unnecassary ist –

+0

der Fehler an der Linie ist, die var bdUsers liest = HttpContext.GetOwinContext(). Get (); –

Antwort

3

Sie haben die Microsoft.aspnet.identity.owin nuget Paket zu verweisen, die die Klasse hat, die die get-Methode hat Sie suchen

Verwandte Themen