我發現如果我將用戶添加到ASP身份中的某個角色,直到我註銷並重新登錄後纔會生效。是否需要執行某些操作來刷新用戶的角色而不強制用戶先註銷?MVC 5 AddToRole在它工作之前需要註銷?
以下是我將用戶添加到角色的方式。
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var userId = HttpContext.Current.User.Identity.GetUserId();
userManager.AddToRole(userId, roleName);
然後,我幾乎立即將用戶重定向到此操作方法。我可以告訴數據庫我已經加入了正確的角色,但是MVC仍然會將我重定向到登錄頁面。但是,如果我註銷,重新登錄,並嘗試轉到此操作方法,則它工作得很好。
[Authorize(Roles = RecoveryStandardRoles.ServiceProvider)]
public partial class CertifyController : Controller
{
#region Public Methods and Operators
public virtual ActionResult CompanyProfile()
{
return this.View();
}
#endregion
}
謝謝你花時間看我的問題!
如果你檢查,如果有人在你的代碼的作用,'User.IsInRole(角色名)'需要註銷和登錄,以反映被添加到新的角色。 'UserManager.IsInRole(userID,roleName)'不。 – nmit026