Unable to cast object of type 'System.Sicherheit.AUFTRAGGEBER.GenericIdentity' type 'System.Web.Sicherheit.FormsIdentity'
Habe ich dieser Fehler bei der Website anmelden.Wie kann ich dieses problem beheben.
InformationsquelleAutor user1939371 | 2013-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offenbar die Hauptsache im Zusammenhang mit der aktuellen Anfrage wurde
GenericIdentity
eher alsFormsIdentity
. Casting zwischen diesen beiden ist nicht möglich.Sollten Sie sorgfältig überprüfen Sie Ihre Anwendung Stapel mit Bezug auf identity-management-Module und alle anderen möglichen stellen in Ihrem code, wo die Identität ist für den aktuellen request. Wenn Sie in der Lage sind, zur Identifizierung der Täter setzt die
GenericIdentity
- Sie sind fertig, Sie umschreiben könnte/redesign dieser bestimmten Stelle.Meine Vermutung ist, dass dieses problem tritt auf, wenn der Benutzer ist nicht authentifiziert. Erstellt die Laufzeitumgebung eine
GenericIdentity
für die aktuelle Anforderung und legt dieIsAuthenticated
zufalse
. Ich würde den code neu schreiben zu:sollte es nicht && HttpContext.Aktuelle.Benutzer.Identität ist FormsIdentity ? Die "Benutzer" - Teil fehlt
ja, es sollte. danke.
InformationsquelleAutor Wiktor Zychla
Ausnahme sagt Ihnen alles, was Sie wissen müssen hier
FormsIdentity
kann nicht gewirkt werden, umGenericIdentity
weil Sie 2 völlig verschiedene Klassen.Du nicht wirklich bieten jede Art von Informationen zu warum Sie Gießen, doch die gemeinsame Basis-Klasse zwischen diesen beiden Arten ist "ClaimsIdentity" - z.B.
Ticket
Eigenschaft desFormsIdentity
. Casting zuClaimsIdentity
wird nicht helfen, ihn und Sie als der folgende code wird nicht kompiliert. Er würde wahrscheinlich um die Neugestaltung der ganze Ansatz zu gehen bis zuClaimsIdentity
.wie ich schon sagte in meiner Antwort, die OP nicht geben, keine Beschreibung, warum warfen Sie in den ersten Platz. Wenn es für den
Ticket
unterstützen, dann ist klar, es ist ein größeres problem alsGenericIdentity
dies nicht unterstützt. Meine Vermutung ist, dass die OP durchgeführt hat-Ihre eigene Art der Sicherheit (nicht-Formulare).Er hat sich nicht wohl. Er nur auszugsweise-Rollen aus der user-data-Abschnitt der cookie Formen. Ein gemeinsamer Ansatz.
InformationsquelleAutor James
Ich lief in dieses problem, weil ich vergessen hatte, verwenden Sie die
[Authorize]
- Attribut auf einen Eintrag, zeigen Sie auf meine web-app wurde mit Hilfe der Formularauthentifizierung. Der Einstiegspunkt, der versucht zu werfenUser.Identity
aus einerGenericIdentity
zu einemFormsIdentity
- und scheiterten.In meinem ASP.NET MVC-Controller hatte ich folgende code;
Verändert durchgesetzt wird die Authentifizierungsmethode festgelegt, die in meinem web.config;
Aktualisierten code;
InformationsquelleAutor Peter Henry
Dieses problem tritt auf, wenn der Benutzer nicht authentifiziert ist: entweder man entfernt die cookies von Ihrem browser und wieder greifen Sie auf die URL direkt ohne login.
InformationsquelleAutor user4960676