我正在尝试通过MVC客户端快速入门进行操作,但是在此行遇到“未设置对象引用...”错误-“ @foreach((在(await Context.AuthenticateAsync())中的var属性)。Properties.Items )”来自我根据快速入门文档修改的Index.cshtml内部。以下是完整的Index.cshtml。有人可以告诉我我在做什么错吗?
@using Microsoft.AspNetCore.Authentication
<h2>Claims</h2>
<dl>
@foreach (var claim in User.Claims)
{
<dt>@claim.Type</dt>
<dd>@claim.Value</dd>
}
</dl>
<h2>Properties</h2>
<dl>
@foreach (var prop in (await Context.AuthenticateAsync()).Properties.Items)
{
<dt>@prop.Key</dt>
<dd>@prop.Value</dd>
}
</dl>
答案 0 :(得分:1)
您在此部分代码中缺少.RequireAuthorization();
:
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute()
.RequireAuthorization();
});
RequireAuthorization方法禁用整个应用程序的匿名访问。
这里有一个可以效仿的例子:https://github.com/nahidf/IdentityServer4-adventures/tree/master/src/MvcClient