Je ne suis pas sûr de ce que vous demandez. Il n'est pas clair à qui et où l'image devrait être indisponible. Mais je vais essayer de donner quelques conseils. Ce ne sera pas copié/"modifiable" et doit être ajusté pour correspondre à vos données/modèles.
Je voudrais séparer l'image du modèle en mongo. C'est à dire. Le "modèle d'étudiant" devrait contenir un ID à son image qui est stockée dans une collection d'images d'étudiant.
Dans votre page Web aller chercher l'image via une action du contrôleur comme ceci. Si vous voulez le cacher pour tous les autres utilisateurs que l'étudiant lui-même, vous devez simplement le montrer lorsque l'utilisateur correspond à un certain critère. Je suppose que puisque vous parlez de la sécurité que vous avez connecté (Identity) en cours d'exécution.
@if (User.Identity.Name == @studentModel.UniqueName)
{
<img src="@Url.Action("GetStudentImage", "StudentController", new {id = studentModel.ImageId})"
}
Dans votre contrôleur, vous récupérez l'image de la base de données mongo. (Ceci est juste du haut de ma tête et ne correspond pas à vos modèles, vous devrait ajuster)
public Task<ActionResult> GetStudentImage(string id)
{
var image = mongo.GetCollection<Image>("Image").AsQueryable().First(x => x.Id == id);
return File(image.ImageBytes.ToArray(), "image/png"); // the image in bytes
}
Je pense que ma question est un peu différent –
« Les images ne peut être vu par d'autres » par qui? Protéger de qui? –