Utwórz formularz przesyłania awatara dla użytkowników

Używam ASP.Net MVC 5 i chcę utworzyć awatar dla moich profili użytkowników. Nie jestem pewien, czy to, co robię do tej pory, jest właściwym sposobem, zwłaszcza ze względów bezpieczeństwa, więc chciałem zasięgnąć porady.

Co robię do tej pory

Z uwagi:

@using (Html.BeginForm("ManageUser", "Account", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="file" />
    <input type="submit" value="Add Avatar" />
}

W kontrolerze:

    internal static bool SaveAvatar(User user, HttpPostedFileBase file)
    {
        if (file == null || file.ContentLength <= 0 || file.ContentLength > MAX_LENGTH)
            return false;

        //I think I should convert the file somehow instead of saving it
        var path = HostingEnvironment.MapPath("~/img/avatar/") + string.Format("{0}.png", user.UserName);
        file.SaveAs(path);
        user.HasAvatar = true;

        return true;
    }

Mam kilka obaw:

W powyższym kodzie, jak skomentowałem, myślę, że zamiast zapisywać tylko to, co użytkownik do mnie wysłał, powinienem jakoś użyć biblioteki do przekonwertowania obrazu do pliku PNG i zapisania go. Jeśli tak, czy istnieje dobra i prosta biblioteka, aby to zrobić?Zastanawiam się, czy użycie nazwy użytkownika jako pliku byłoby dobrym pomysłem. W końcu wybierają tę nazwę i to nie jest coś, co decyduję.Czy dobrym pomysłem jest używanie zwykłych obrazów lub powinienem utworzyć kontroler do sprawdzania poprawności żądań lub kierowania żądań doukryty obraz?

Jeśli to co robię toCAŁKOWICIE Źle i znasz lepsze źródło, aby nauczyć się właściwej drogi, proszę wskazać mi właściwy kierunek. Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion