Wir bauen eine Website mit asp.net mvc. Wir möchten, dass der Benutzer sich leicht registrieren und ein Konto erstellen kann. Es gibt jedoch eine ganz besondere Information, die in seinem Profil eingetragen wird, die wir ihm * nach der Registrierung zeigen wollen und er meldet sich zum ersten Mal an.asp.net MVC, wie umregistrierte Benutzer, die kein Profil auf Seite haben?
Die Logik ist unabhängig von der URL, die getroffen wurde. Wenn der Benutzer authentifiziert ist und kein gültiges Profil hat, leiten Sie ihn zur Seite "Create Profile" um.
Das ganze UI hängt von diesen Profilwahlen ab. Welchen Ansatz sollten wir innerhalb des MVC-Frameworks verwenden, um diesen Workflow für den Besucher zu erzwingen? Die Ideen, die ich mir vorstellen kann, erfordern eine Menge Code-Duplizierung in Controllern usw., also ist es eindeutig eine schlechte Idee.
Wir verwenden Mitgliedschaft für Benutzer, aber Profil ist unsere eigene Implementierung (kein Profilanbieter), die Profildaten mit einer userId verbindet.
Ich denke, dass es ein großer Aufwand ist, den gleichen Actionfilter immer wieder anwenden zu müssen, wenn man weiß, dass man das immer tun will. Ich werde dies in entweder mit einem Basis-Controller tun (dann müsste ich alle meine Controller erben stattdessen, oder?) Oder gehen Sie in die begin-Anforderung der global.asax. –
Sie können den Filter auf der Controller- oder Aktionsebene anwenden. Wenn es auf der Controller-Ebene angewendet wird, ist es im Grunde dasselbe, wie es im Basis-Controller zu tun ist. Sobald Sie mehrere verschiedene Filter haben, die nicht immer zutreffen, werden Sie die Flexibilität des Filtermechanismus zu schätzen wissen.Nur wenn es wirklich eine globale Aktion ist, würde ich den Basis-Controller-Mechanismus empfehlen. In Ihrem Fall könnte es gelten. – tvanfosson
Danke für Ihre Antworten. Es sieht in der Tat so aus, als wäre es etwas ganz Besonderes, das ich durchsetzen muss, wo auch immer meine registrierten Benutzer hinkommen. Ich denke, es ist ein Preis für die zusätzliche Benutzerfreundlichkeit, die Benutzer nicht zu sehr mit der Registrierung zu belasten. Die Verwendung eines benutzerdefinierten Basis-Controllers erfordert, dass alle Controller, die diese Überprüfung erzwingen müssen, den benutzerdefinierten Ctrler erweitern müssen. Wäre es nicht einfacher, Logik in Global.asas zu setzen, wie xandy es vorschlägt? –