使用 Azure AD 的 Blazor 服务器应用的自定义登录屏幕
Custom Login Screen for Blazor Server App using Azure AD
我正在使用 Blazor Server 编写一个内部应用程序。到目前为止,我所做的就是使用身份验证创建一个新项目并将其连接到 Azure 中的注册应用程序,该应用程序仅允许我们域中的用户访问。这是开箱即用的,当我启动应用程序时,我会立即看到 Microsoft 登录页面,然后才能访问该应用程序。但是,有没有办法让用户在选择登录之前先点击登陆页面?我看不到找到方法来做到这一点。
谢谢。
可能您有正在添加的类似服务:
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = options.DefaultPolicy;
});
如果用户试图访问您的应用程序的任何页面,这将自动要求用户登录,因此我建议将其删除。
接下来,您需要一个登录和注销按钮。在 MainLayout.razor
:
的某处创建它
<AuthorizeView>
<Authorized>
Hello, @context.User.Identity?.Name!
<a href="MicrosoftIdentity/Account/SignOut">Log out</a>
</Authorized>
<NotAuthorized>
<a href="MicrosoftIdentity/Account/SignIn">Log in</a>
</NotAuthorized>
</AuthorizeView>
由于我们从您的页面中删除了授权过滤器,您可能希望在 blazor 组件顶部使用以下代码手动装饰您的安全页面:
@attribute [Authorize]
您可以使用额外的布局,哪个布局使用第一次登陆页面,这意味着使用此布局的页面路由将为“/”或默认。
我正在使用 Blazor Server 编写一个内部应用程序。到目前为止,我所做的就是使用身份验证创建一个新项目并将其连接到 Azure 中的注册应用程序,该应用程序仅允许我们域中的用户访问。这是开箱即用的,当我启动应用程序时,我会立即看到 Microsoft 登录页面,然后才能访问该应用程序。但是,有没有办法让用户在选择登录之前先点击登陆页面?我看不到找到方法来做到这一点。
谢谢。
可能您有正在添加的类似服务:
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = options.DefaultPolicy;
});
如果用户试图访问您的应用程序的任何页面,这将自动要求用户登录,因此我建议将其删除。
接下来,您需要一个登录和注销按钮。在 MainLayout.razor
:
<AuthorizeView>
<Authorized>
Hello, @context.User.Identity?.Name!
<a href="MicrosoftIdentity/Account/SignOut">Log out</a>
</Authorized>
<NotAuthorized>
<a href="MicrosoftIdentity/Account/SignIn">Log in</a>
</NotAuthorized>
</AuthorizeView>
由于我们从您的页面中删除了授权过滤器,您可能希望在 blazor 组件顶部使用以下代码手动装饰您的安全页面:
@attribute [Authorize]
您可以使用额外的布局,哪个布局使用第一次登陆页面,这意味着使用此布局的页面路由将为“/”或默认。