在ASP.NET Core Web应用程序中,可以使用[Authorize]特性在站点级别对整个应用程序进行授权。以下是一个示例解决方法:
services.AddControllersWithViews();
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login"; // 设置登录路径
});
services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
[Authorize]
public class HomeController : Controller
{
// Your code here
}
这样,整个应用程序将要求用户在访问任何Controller或Action之前进行身份验证。
请注意,您还需要设置登录路径和处理登录逻辑的代码。上述示例中的登录路径为/Account/Login
,您可以根据自己的需求进行更改。