Azure active directory 如何将未经身份验证的Blazor Azure AD用户重定向到与经过身份验证的用户不同的页面?
我正在使用VisualStudio2019附带的Blazor服务器模板 在使用本地身份验证的模板应用程序中,当我在未经身份验证的情况下查看页面时,AuthorizeView标记会按预期工作,导航栏上的登录/退出按钮会根据这些标记动态显示。我可以作为客人查看柜台和天气预报页面 在使用Azure AD身份验证的模板应用程序中,每当我尝试在未经身份验证的情况下查看页面时,都会重定向到Microsoft登录提示符。我仍然能够使用AuthorizeView标签在导航栏中动态显示组件,但我希望能够作为来宾查看计数器和天气预报页面,而不会被重定向 有没有办法做到这一点?我是不是在App.razor中遗漏了什么 编辑:Azure active directory 如何将未经身份验证的Blazor Azure AD用户重定向到与经过身份验证的用户不同的页面?,azure-active-directory,blazor,blazor-server-side,Azure Active Directory,Blazor,Blazor Server Side,我正在使用VisualStudio2019附带的Blazor服务器模板 在使用本地身份验证的模板应用程序中,当我在未经身份验证的情况下查看页面时,AuthorizeView标记会按预期工作,导航栏上的登录/退出按钮会根据这些标记动态显示。我可以作为客人查看柜台和天气预报页面 在使用Azure AD身份验证的模板应用程序中,每当我尝试在未经身份验证的情况下查看页面时,都会重定向到Microsoft登录提示符。我仍然能够使用AuthorizeView标签在导航栏中动态显示组件,但我希望能够作为来宾查
如果我使用导航栏链接注销,然后使用浏览器返回,我可以在未经授权的情况下查看页面。但是当我刷新页面时,我会被发送回。这可能是什么原因造成的?我想查看未经授权的主页而不被重定向。您看到的行为是故意的 要更改它,您可以在启动内进行此更改。配置:
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
//options.Filters.Add(new AuthorizeFilter(policy));
});
(当然,如果希望保持这种方式,可以将此代码简化为services.AddControllersWithViews();
)
通过此更改,您必须使用
@attribute[Authorize]
或
阻止私人页面,并且不会自动重定向到登录页面 你看到的行为是故意的
要更改它,您可以在启动内进行此更改。配置:
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
//options.Filters.Add(new AuthorizeFilter(policy));
});
(当然,如果希望保持这种方式,可以将此代码简化为services.AddControllersWithViews();
)
通过此更改,您必须使用
@attribute[Authorize]
或
阻止私人页面,并且不会自动重定向到登录页面 我觉得Blazor路由器/身份验证功能有点漏洞。通常希望大多数应用程序都是安全的,但对于欢迎/帮助页面,有一到两个页面是不安全的。直接跳到“登录”通过B2C是非常糟糕的用户体验。我可以使用[AllowAnonymous]
使其适用于ASP.NET核心MVC,可惜它不适用于BlazorI,感觉Blazor路由器/身份验证功能有点漏洞。通常希望大多数应用程序都是安全的,但对于欢迎/帮助页面,有一到两个页面是不安全的。直接跳到“登录”通过B2C是非常糟糕的用户体验。我可以使用[AllowAnonymous]
让它在ASP.NET核心MVC上运行,可惜它不适用于Blazor