2017-03-18 2 views
0

Je veux créer un modèle pour un étudiant dans asp.net mvc et je veux savoir comment je peux inclure une image avec le mode.Comment inclure l'image dans un modèle C# et insérer le document dans MongoDB

Existe-t-il un autre moyen que d'utiliser l'image DataURI?

Mon objectif est de fournir une sécurité afin que les images ne puissent pas être vues par d'autres personnes. Je fais un projet sur ASP.Net MVC en utilisant MongoDB

+0

Je pense que ma question est un peu différent –

+0

« Les images ne peut être vu par d'autres » par qui? Protéger de qui? –

Répondre

0

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 
}