Wie kann ich von der Security Fehler beseitigen, wenn sie versuchen AutoMapper in ASP.NET MVC zu verwenden?
-
04-10-2019 - |
Frage
Ich entwickle eine ASP.NET MVC-Anwendung mit NHibernate und ich versuche AutoMapper zu verwenden, die Domain-Objekte aus der DTO zu verbergen Objekte in die Ansicht gesendet:
- Classlibrary mit meiner Domain (für NHibernate) und DTO-Objekte
- Klassenbibliothek eine
SessionFactory
und Fabriken in meinem Projekt machen
Ich heruntergeladen AutoMapper Domain-Objekte in DTO zu transformieren und den Code zu tun dies in Application_Start
hinzugefügt.
Wenn ich die app in Visual Studio (durch Drücken der Taste F5) ausführen es funktioniert gut und mein DTOs in die Ansicht abgebildet.
Wenn ich dies in IIS veröffentlichen, ich eine Sicherheitsausnahme erhalten:
Mapper.CreateMap<Category, CategoryDto>();
Mapper.CreateMap<Product, ProductDto>();
System.Security.SecurityException. Fehlgeschlagen Antrag auf Genehmigung des Typs 'System.Security.Permissions.ReflectionPermission Mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'
Wie kann ich AutoMapper zu arbeiten, ohne die Sicherheit Ausnahme bekommen?
Lösung
benötigen Sie IIS in voller Vertrauen laufen, um Reflexion Erlaubnis zu haben, hier Reflexionserlaubnis
oder hier Satz Vertrauensebene
you need this because Automapper uses reflection to emit code o_O
Andere Tipps
Rechtsklick auf den AutoMapper.dll> wählen Sie Eigenschaften> Freigabe.
Dann Neustart IIS
Freigabe der DLL (wie von Lee erwähnt, Rechtsklick auf die AutoMapper.dll> wählen Sie Eigenschaften> Freigabe.), Und dann bereiten sie einfach die App Becken Website. Benötigen Sie nicht IIS neu starten.