User.IsInRole funktioniert nicht

Ich habe ASP.NET MVC 4-Anwendung. Ich benutze den Simple Membership Provider, um das Kontrollkästchen "Remember Me" unter dem Anmeldeformular zu aktivieren. Wenn aktiviert, wird ein permanenter Cookie .ASPXAUTH erstellt, der 100 Tage nach dem Anmeldedatum abläuft. Und alles funktioniert gut, abgesehen vom Hauptmenü der Anwendung.

Einige Teile des Menüs stehen nur Administratoren zur Verfügung. Ich benutze:

@if (User.IsInRole("Administrator")) { @Html.Partial("_MainMenuPartial") }

um zu verhindern, dass sie für normale Benutzer gerendert werden. Dieser Ansatz funktioniert einwandfrei, sobald Sie sich beim System angemeldet haben. Wenn ich nach einer Weile zurückkomme und ein beständiges Cookie verwendet wird, um mich zu authentifizieren, werde ich zwar angemeldet, aber

@User.IsInRole("Administrator")

gibt "False" zurück, so dass ich keine Admin-Menüelemente sehen kann. Zur selben Zeit

@User.Identity.Name

gibt den korrekten Anmeldenamen und zurück

@User.Identity.IsAuthenticated

gibt "True" zurück, was beweist, dass dauerhafte Cookies gut funktionieren. Warum kann ich nicht auf Benutzerrollen zugreifen, obwohl der Benutzer dann vom System authentifiziert wird?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage