Je fait authentification selon la username.So une personne non autorisée ne peut pas voir toutes les méthodes qui fonctionne très bien.Récupération des données Selon le nom d'utilisateur
The problem is all of the users are able to each others data. Person A shouldn't see the records of person B so that he/she can't edit another person's records.Does anyone know how I can write a lambda expression for that? I have my Edit method pasted below:
// GET: /IcerikDB_/Edit/5
[Authorize(Roles = "Administrator")]
public ActionResult Edit(int id)
{
icerik icerik = db.icerik.Find(id);
ViewBag.Kategorid = new SelectList(db.Kategoriler, "Id", "Adi", icerik.Kategorid);
ViewBag.Userid = new SelectList(db.Users, "UserId", "UserName", icerik.Userid);
return View(icerik);
}
[HttpPost]
public ActionResult Edit(icerik icerik)
{
if (ModelState.IsValid)
{
if (User != null && User.Identity != null && User.Identity.IsAuthenticated)
{
string userName = User.Identity.Name;
var user = db.Users.First(u => u.UserName == userName);
icerik.Userid = user.UserId;
db.Entry(icerik).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
ViewBag.Kategorid = new SelectList(db.Kategoriler, "Id", "Adi", icerik.Kategorid);
ViewBag.Userid = new SelectList(db.Users, "UserId", "UserName", icerik.Userid);
return View(icerik);
}
Voici le code pour icerik.cs
namespace KategoriEditor.Icerik_DB
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public partial class icerik
{
public int Id { get; set; }
public Nullable<int> Kategorid { get; set; }
public Nullable<System.Guid> Userid { get; set; }
[DataType(DataType.Date)]
public Nullable<System.DateTime> Baslangic { get; set; }
[DataType(DataType.Date)]
public Nullable<System.DateTime> Bitis { get; set; }
public string tamicerik { get; set; }
public string kisaicerik { get; set; }
public string resimlink { get; set; }
public virtual Kategoriler Kategoriler { get; set; }
public virtual Users Users { get; set; }
}
}
Pourquoi archivez User.Identity à ActionResult, vous utilisez Autorisez attribut ou personnalisé et le définir en un seul endroit. Chaque entité appartient à une personne (id), n'affiche que les entités de cette personne. Lors de l'édition, vérifiez si la personne qui édite a également créé l'entité. –
Cette partie du code consiste à insérer UserName lorsque l'utilisateur clique sur le bouton ** "Enregistrer" **. ** [Authorize] ** est écrit au début du contrôleur pour prendre en charge l'autorisation. Ce que je veux que mon code fasse est d'afficher uniquement les enregistrements de l'utilisateur connecté. –
Je ne vois rien saisir les journaux pour le modèle ... Je vois un modèle passé, est converti en une liste de sélection, et retourné avec une vue. – ps2goat