首页 文章

在ASP.NET Core中禁用未授权重定向到帐户/登录

提问于
浏览
4

我在共享库中有一组WebAPI服务 . 这些用于ASP.NET核心MVC网站和专用服务器,仅托管没有MVC组件的WebAPI服务 .

一切按预期在MVC网站上以未经授权的请求工作,我得到304重定向到登录页面(帐户/登录) . 但是,当我向WebAPI服务发出未经授权的请求时,我收到相同的304重定向到/ Account / Login,在这种情况下,我想返回Http 401 Unauthorized结果代码 . 我宁愿不在自定义AuthorizeAttribute中处理它,而是宁愿在我的Startup类中的站点级别处理 .

1 回答

  • 5

    我怀疑您已经使用MVC(视图)部件以及WebApi部件注册了ASP.NET Core Identity .

    您必须将它分开并且CookieMiddleware(在 .UseIdentity() 调用中注册的一个)必须仅注册以请求您的MVC页面,但不能注册您的WebAPI调用 .

    您可以使用 .MapMapWhen 方法(请参阅docs) .

    // For requests not going to WebAPI controllers
    app.MapWhen(context => !context.Request.Path.StartsWithSegments("/api"), branch =>
    {
        branch.UseIdentity();
    });
    

相关问题