最初,我们创建服务器端blazor应用程序(ASP.NET Core Web App)时,未启用身份验证。我们想立即启用Windows身份验证。
我使用Windows身份验证创建了一个测试Web应用程序,并尝试将缺失的部分添加到我们现有的Web应用程序中。以下是我所做的更改:
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
<CascadingAuthenticationState>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</CascadingAuthenticationState>
</NotFound>
</Router>
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@code {
[CascadingParameter]
private Task<AuthenticationState> authenticationStateTask { get; set; }
private async Task LogUsername()
{
var authState = await authenticationStateTask;
var user = authState.User;
if (user.Identity.IsAuthenticated)
{
Console.WriteLine($"{user.Identity.Name} is authenticated.");
}
else
{
Console.WriteLine("The user is NOT authenticated.");
}
}
}
当我在Visual Studio 2019预览版中本地运行Web应用程序时,我总是以空的身份名称结尾。并且,IsAuthenticated始终为false。 但是,如果我在本地运行测试Web应用程序,它将获得正确的身份名称。
有人知道我现有的Web应用程序中缺少什么吗?
谢谢!
答案 0 :(得分:1)
显然,我没有选中“项目属性”>“调试”选项卡下的Windows身份验证复选框。
答案 1 :(得分:1)
只需启用 Windows 身份验证按钮:项目 => 属性 => 调试 => Web 服务器设置