2016-02-17 117 views
3

我有一個頁面,登錄的用戶更改用戶角色執行的操作,並基於該我改變這樣的用戶角色:Asp.net身份:在登錄

var userStore = new UserStore<IdentityUser>(); 
    var manager = new UserManager<IdentityUser>(userStore); 

    IdentityUser user = manager.FindById(TheMembershipID); 

    manager.RemoveFromRole(user.Id, "StartUser"); 
    manager.AddToRole(user.Id, "AppUser"); 

然後,在客戶端,重定向到需要在AppUser角色中進行身份驗證的其他頁面。問題是用戶顯示爲仍以StartUser身份登錄。

如何在用戶登錄時更改用戶角色?

感謝

回答

3

您需要登錄出來,並回到了新角色才能生效。在您的代碼後:

//Get the authentication manager 
var authenticationManager = HttpContext.GetOwinContext().Authentication; 

//Log the user out 
authenticationManager.SignOut(); 

//Log the user back in 
var identity = manager.CreateIdentity(user,DefaultAuthenticationTypes.ApplicationCookie); 
authenticationManager.SignIn(new Microsoft.Owin.Security.AuthenticationProperties() { IsPersistent = true}, identity); 

這不是確切的,但應該給你的一般想法。

+0

好的,謝謝你的回答 – frenchie