2016-06-22 8 views
1

ASP.Net MVCアプリケーションには、Admin、Client、ProjectManagerという3つの役割があります。 私は私のデフォルトのアプリケーションエリアにログインページを持っている、そして私は彼らの定義された領域にその役割ごとにユーザーをリダイレクト:アプリケーションをデフォルトに送られ、上記の例ではASP.NET MVC:ユーザーを自分のエリアにリダイレクトします

bool isAdmin = UserManager.IsInRole(user.Id,ApplicationUser.Role_SiteAdmin); 
bool isProjectManager = UserManager.IsInRole(user.Id,ApplicationUser.Role_ProjectManageer); 
await SignInAsync(user, model.RememberMe); 
if (isProjectManager==true) 
    return RedirectToAction("Index","Home",new { area = "Admin" }); 
else 
    return RedirectToLocal(returnUrl); 

ProjectManagerAdminエリアとAdmin役割を対象としていますエリア。

グローバルな方法はありますか?他の地域を訪問した場合、指定したAreaにユーザーをリダイレクトできますか?例えば。 ProjectManagerがクライアントエリアに移動した場合、自動的に彼は自分のエリアにリダイレクトされますか?

+1

私はそれがアクションをリダイレクトするカスタム属性を使って行うことができると思います:http://stackoverflow.com/questions/3438998/asp-net-mvc-redirect-from -属性 –

答えて

0

AuthorizeAttributeを使用する方がよいでしょう。これにより、ユーザーの役割に基づいてアクションにアクセスできるようになります。例:[Authorize(Roles = "SiteAdmin")]

関連する問題