Ich möchte, dass wenn ein nicht angemeldeter Benutzer versucht, auf einen Controller zuzugreifen, der nicht für nicht angemeldete Benutzer ausdrücklich erlaubt ist, der Benutzer auf ein weitergeleitet wird Controller für die Anmeldung. Wie kann ich das am besten erreichen? Dachte, es wäre nett, es irgendwie in Global.asax.cs zu machen, oder?MVC3 erlauben nicht nicht angemeldeten Benutzern Zugriff auf einen Controller, aber auf
Antwort
Verwenden Sie [Authorize] Attribut. Es funktioniert gut mit der Formularauthentifizierung, die Sie vermutlich verwenden.
Der einfachste Schritt beim Sichern einer ASP.NET MVC3-Anwendung besteht darin, dass Benutzer angemeldet sein müssen, um auf bestimmte URLs zugreifen zu können. Dies geschieht mithilfe des Autorisierungsfilters [Authorize()] auf einem Controller oder einer Aktion.
http://build.mt.gov/2011/10/27/aspnet-mvc3-and-the-authorize-attribute.aspx
anpassen Autorisieren Attribut:
http://www.diaryofaninja.com/blog/2011/07/24/writing-your-own-custom-aspnet-mvc-authorize-attributes
Inherit alle Controller von einem Basis-Controller. Der Basiscontroller sollte eine Anmerkung über der Klassendeklaration haben. Sie können .NET-Anmerkungen wie [Autorisieren] verwenden, oder Sie können Ihre eigene Anmerkung implementieren, was einfach ist.
z.
[Secure()]
public class BaseController : Controller
{
// Action methods
}
Sie werden dann Controller erstellen, die von Ihrer Basis-Controller ableiten wird:
[Secure(false)]
public class NonSecureController: BaseController
{
// Action methods
}
Sie müssen einfach implementieren Anmerkung, zu dem Sie eine Flagge passieren kann, um anzuzeigen, ob Benutzer erforderlich ist, angemeldet sein, in oder nicht.
Bei der Entwicklung eines benutzerdefinierten Attributs (Annotation) können Sie den Bereich entweder als Klasse oder als Methode angeben. Dies bedeutet, dass Sie Ihre Berechtigungslogik genauer steuern können.
- 1. Auf Jenkins erlauben Sie Benutzern, ihre eigenen Anmeldeinformationen aber nicht globale zu behandeln
- 2. Zugriff auf einen Ordner mit htaccess erlauben
- 3. Den Benutzern erlauben, einige Informationen nur auf Ruby on Rails, aber nicht Admins zu bearbeiten
- 4. nginx: Verzeichnis blockieren, aber Zugriff auf das Unterverzeichnis erlauben
- 5. Verfolgen von angemeldeten Benutzern
- 6. Anonymen Benutzern den Zugriff auf Sonar verweigern
- 7. StructureMap löst Controller-Instanzen in der MVC3-Anwendung nicht auf
- 8. Zugriff auf einen Controller über einen anderen Controller in AngularJs
- 9. UITabBarController - Zugriff auf einen View-Controller?
- 10. Zugriff auf Formularstatus auf einer Direktive nicht möglich Controller
- 11. Zugriff auf Containersicht-Controller
- 12. Steuermenüelemente basierend auf Berechtigungen von angemeldeten Benutzern mit Federsicherheit
- 13. So gruppieren Laravel-Routen basierend auf angemeldeten Benutzern und Gastbenutzern
- 14. Django Queryset, Zugriff auf alle Abfragen außer denen, die den angemeldeten Benutzern gehören?
- 15. PreAuthorize funktioniert nicht auf Controller
- 16. Disable direkten Zugriff auf PHP-Seite, aber erlauben den Zugriff, wenn von bestimmter Seite erreicht
- 17. Azure App-Service Nicht autorisierte Benutzer Zugriff auf Controller
- 18. Zugriff auf die $ rootScope-Eigenschaft vom Controller aus nicht möglich?
- 19. Teilen auf "," aber nicht "/"
- 20. Wie kann ich einer Rolle von Benutzern erlauben, auf einen Inhaltstyp in Drupal6 zuzugreifen?
- 21. AngularJS - Zugriff auf Kindersicherungs-Controller
- 22. Benutzern erlauben Pfad in tkinter askopenfilename eingeben()
- 23. Benutzern erlauben, Geolocation manuell zu überbrücken
- 24. Convert String NSDate aber noch nicht dateByAddingTimeInterval Methode Zugriff auf
- 25. web.config Speicherort funktioniert nicht in MVC3
- 26. Zugriff auf nicht subscriptable Eigenschaften
- 27. Zugriff auf nicht definierte Argumente
- 28. Zugriff auf Telefonnummern nicht möglich
- 29. web2py - externen Zugriff erlauben - wie?
- 30. Zugriff auf Vektorelement nicht möglich?
Ich ging mit dieser Lösung. Am einfachsten (obwohl ich ein eigenes Attribut erstellt habe, das nicht angemeldete Benutzer ein wenig anders behandelt). –