一个 .net 8 + Azure 登录 + Ant Design Blazor 的基本后台框架

一个 .net 8 + Azure 登录 + Ant Design Blazor 的基本后台框架
主界面使用了  Ant Design Blazor  项目模板搭建
后台技术是  .net 8 Blazor run at server 模式
登录方式使用 Azure
实现了菜单导航和路由
此外实现了读取和修改本地Json文件的功能,不是必须的,不需要的可以拿掉,我是自己项目需要

点击下载

由于没有对权限进行细分,所以没有做菜单的权限控制,基本上有 Azure 账户就能登录进来,如果要细分,也很简单,就是在 Azure 的 Claims 里做文章,这里也不说了

Azure 登录的关键代码在 BasicLayout.razor,这点跟传统的登录以后再跳转有些不一样

@namespace Bestrane.OPS.Web
@inherits LayoutComponentBase
@inject NavigationManager _navigationManager
<CascadingAuthenticationState>
    <Router AppAssembly="@typeof(Program).Assembly">
        <Found Context="routeData">
            <AuthorizeView>
                <Authorized>
                    <AntDesign.ProLayout.BasicLayout Logo="@("https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg")"
                                                     MenuData="_menuData">
                        <RightContentRender>
                            <Bestrane.OPS.Web.Components.RightContent />
                        </RightContentRender>
                        <ChildContent>
                            @Body
                        </ChildContent>
                        <FooterRender>
                            <FooterView Copyright="2024 BOPS" Links="Links"></FooterView>
                        </FooterRender>
                    </AntDesign.ProLayout.BasicLayout>
                    <SettingDrawer />
                </Authorized>
                <NotAuthorized>
                    <div class="main__b__0">
                        <div class="login">
                            <Card Title="BOPS" Style="width:300px;">
                                <Body>
                                    <Button Type="@ButtonType.Primary" OnClick="HandleSubmit">
                                        Azure Login
                                    </Button>
                                </Body>
                            </Card>
                        </div>
                    </div>
                    @* <li><a href="MicrosoftIdentity/Account/SignIn">Log in</a></li> *@
                </NotAuthorized>
            </AuthorizeView>
        </Found>
    </Router>
    <AntContainer />
</CascadingAuthenticationState>

@code
{
    public void HandleSubmit()
    {
        _navigationManager.NavigateTo("MicrosoftIdentity/Account/SignIn", true);
    }

    private MenuDataItem[] _menuData = { };

    [Inject] public HttpClient? _httpClient { get; set; }

    protected override async Task OnInitializedAsync()
    {
        await base.OnInitializedAsync();
        _menuData = await _httpClient.GetFromJsonAsync<MenuDataItem[]>("data/menu.json");
    }

    public LinkItem[] Links { get; set; } = new LinkItem[] { };
}

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 09:32:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 09:32:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 09:32:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 09:32:05       18 阅读

热门阅读

  1. 冰狐智能辅助和按键精灵如何选择?

    2024-04-22 09:32:05       16 阅读
  2. 微软面试高频算法题解析与代码实现(C++)

    2024-04-22 09:32:05       13 阅读
  3. React参数传递问题

    2024-04-22 09:32:05       12 阅读
  4. otomegame游戏音频提取通用教程

    2024-04-22 09:32:05       13 阅读
  5. pta 计算火车运行时间 (15分)c语言

    2024-04-22 09:32:05       11 阅读
  6. JVM 如何判断对象是否可回收

    2024-04-22 09:32:05       12 阅读
  7. Android活动之Intent

    2024-04-22 09:32:05       10 阅读
  8. 完全日期(蓝桥杯)

    2024-04-22 09:32:05       14 阅读
  9. k8s和docker的一些学习(一)

    2024-04-22 09:32:05       14 阅读
  10. Dockerfile学习

    2024-04-22 09:32:05       12 阅读
  11. 算法 第46天 动态规划8

    2024-04-22 09:32:05       14 阅读