Warum gibt IsInRole immer false zurück?
ch erstelle eine MVC5-Anwendung mit ASP.NET Identity 2.0 und EF 6.1.
Dies ist Teil meiner aktuellen Anmeldemethode:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
return View(model);
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: true);
switch (result)
{
case SignInStatus.Success:
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user == null)
break;
if (!UserManager.IsInRole(user.Id, "OfficeUser"))
break; // << I always hit this line - even if the user is an OfficeUser
Dies funktioniert einwandfrei, bis ich UserManager.IsInRole () drücke. Dies gibt immer false zurück.
Irgendwo habe ich gelesen, dass IsInRole () fehlschlägt, wenn der entsprechende Benutzer nicht angemeldet ist. Aber da ich SignInManager.PasswordSignInAsync () übergeben habe, denke ich, dass dies in Ordnung sein sollte.
Und ja, ich habe die Datenbank viele Male und sehr sorgfältig geprüft;) Mein Testbenutzer und meine Testrolle "OfficeUser" sind definitiv einander zugeordnet.
Hat jemand eine Idee?