首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为多个用户角色构建.NET Core项目?

如何为多个用户角色构建.NET Core项目?
EN

Stack Overflow用户
提问于 2020-08-18 22:00:32
回答 1查看 160关注 0票数 1

假设您有多个用户角色(如客户、员工、经理),并希望提供个性化体验(不同的主页,不同角色可访问的不同页面),那么设置此角色以使其可伸缩的最佳方法是什么?

目前,我们正在考虑使用不同角色的区域。

例如,在登录时,经理将被定向到经理区域主页,而客户将被定向到客户区域主页。

有什么更好的方法来构造这个吗?

EN

Stack Overflow用户

回答已采纳

发布于 2020-08-19 04:43:14

通常,我们通过网站中的导航菜单/栏将用户重定向到不同的页面,如果您想根据用户的角色显示不同的页面,则可以在用户登录到站点后,通过检查当前用户的角色来动态地呈现/显示导航菜单/栏。

代码语言:javascript
复制
@if (!SignInManager.IsSignedIn(User))
{
    <header>
        <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
            <div class="container">
                <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">WebApp</a>
                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                        aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>
                <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
                    <partial name="_LoginPartial" />
                    <ul class="navbar-nav flex-grow-1">
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>
    </header>
}
else
{
    if (User.IsInRole("manager"))
    {
        //navigation bar for manager

        //html content here
        //...

        <a class="nav-link text-dark" asp-area="Manager" asp-controller="controller_name_here" asp-action="action_name_here">Admin Home</a>
    }
    else if (User.IsInRole("employee"))
    {
        //navigation bar for employee
    }
    else
    {
        //navigation bar for employee
    }

目前,我们正在考虑使用不同角色的区域。

区域提供了一种将ASP.NET Core应用程序划分为更小的功能组的方法。在您提到的场景中,将功能分组到客户、员工和管理单元中,这将使项目结构更加清晰。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63477215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档