2017-11-03 1 views
0

So hat meine ASP.Net MVC-Anwendung (. NET 4.5) 3 Tabellen (SQL Server). Listings (Schlüssel LID), Details (Fremdschlüssel LID), Standorte (Fremdschlüssel LID).MVC Submit für das Genehmigungssystem

Soweit die Anwendung geht, kann jeder registrierte Benutzer eine Auflistung in die Datenbank eingeben. Ich brauche eine Möglichkeit, um die Daten zu moderieren, bevor sie live gehen ... Wie erreiche ich das?

Sobald der Benutzer ein Datenelement übermittelt, sollte es nicht live gehen, sondern muss auf die Genehmigung eines Administrators warten, wonach es auf der Website sichtbar wird.

+0

Ich würde ein Bool zu der Tabelle Listings hinzufügen, die so etwas wie genehmigt genannt wird, und es bei der Erstellung auf false setzen. Dann könnte ein Administrator reingehen und alle kürzlich erstellten Einträge ansehen, die immer noch als falsch markiert sind. Nach der Genehmigung aktualisieren Sie die genehmigte Spalte dieses Datensatzes auf "True". – tokyo0709

Antwort

0

Sie müssen ein Statusfeld im Listing-Modell hinzufügen. Wenn Einträge eingegeben werden, werden sie mit einem Status wie "nicht genehmigt" markiert. Wenn ein Administrator sie überprüft, werden sie als "genehmigt" gekennzeichnet. Auf Ihrer Benutzeroberfläche werden nur Listen angezeigt, deren Status == genehmigt ist.

Dies setzt voraus, dass Benutzerverwaltung und Rollen bereits definiert sind, sodass Benutzer als Nicht-Administrator- und Administratorrollen definiert werden können.

+0

Ich dachte an die gleiche Sache, aber dann, wenn es einen problematischen Datenbankeintrag gibt, würde es nicht die gesamte Hauptdb-Tabelle betreffen ?? @Chris –

0

Sie könnten eine Sql verwenden, eine Bitspalte namens [IsApproved] (True | False) sollte dafür ausreichen. Sie können dann dieses Flag in Ihrem Modell widerspiegeln. Wenn Sie also die Daten laden, können Sie sicherstellen, dass Sie die Ergebnisse ausschließen, die noch nicht genehmigt wurden.

Sie würden eine Form der Administrator Genehmigung benötigen, entweder durch eine MVC-Seite oder nur durch die Flagge in der Datenbank auf True ändert sich

Wenn Sie Ihr Modell laden (je nachdem, wie die DB-Abfrage), Sie können dann einfach myTable.Where(x => x.IsApproved).ToList() anfordern, um die genehmigten Ergebnisse zu Ihrer Ansicht zurückzugeben.

+0

Ja, aber Zugang zum Benutzer zu geben (wer zufällig sein wird) Zugang zu meiner Hauptdatenbank würde keine Sicherheitsbedrohung darstellen? @Joey –

+0

@MukeshMurugan versuchen Sie nicht, die App mit Ihrer Datenbank zu verwechseln, wenn Sie einschränken möchten, wer auf Ihre MVC-Anwendung zugreifen können, müssen Sie über die Arten der Authentifizierung zu implementieren (Windows, Formulare, Digest etc ...) wenn Sie Es freut Sie, dass Personen neue Elemente über Ihr Formular hinzufügen, um diese Informationen in Ihrer Datenbank zu speichern (aber eine Genehmigung erforderlich ist), und Sie benötigen keine Authentifizierung. Sie können das [IsApproved] -Attribut aus Ihrer MVC-Ansicht ausblenden und es als Nur-Datenbank-Flag verwenden. Ihre Datenbankverbindung sollte in Ihrer app.config gesichert sein, was der Benutzer nicht sehen kann. –

Verwandte Themen