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?