【问题标题】:How to enable Oauth authentication only in API controllers in ASP .NET MVC?如何仅在 ASP .NET MVC 的 API 控制器中启用 Oauth 身份验证?
【发布时间】:2018-12-10 09:13:32
【问题描述】:

我有一个 ASP .NET MVC 应用程序。它同时具有 MVC 控制器和 API 控制器。我正在使用 OAUTH 2 进行身份验证。当我启用 OAUTH 身份验证时,它也会显示正常控制器操作的授权错误。

我用于注册身份验证的代码。

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        var config = new HttpConfiguration();
        AppStart(config);
        SwaggerConfig.Register(config);
        HttpServer server = new HttpServer(config);
        // Accepts OAuth Service v1.0 tokens
        if (!string.IsNullOrEmpty(IdentifierUrl))
        {
            app.Map(
                new PathString("/v1"),
                p =>
                {
                    // Map to use OAuth 1 tokens            
                    p.UseEsoAccessTokenValidation(new EsoAccessTokenOptions { AuthorizationServerUrl = AuthorizationServer, Audiences = IdentifierUrl.Split(',') });
                    p.UseWebApi(server);
                });
        }

        // Accepts OAuth Service v2.0 tokens
        //app.Map("/v2", v2app =>
        //{
        app.UseEsoAccessTokenValidation(new EsoAccessTokenOptions
        {
            AuthorizationServerUrl = AuthorizationServer,
            Scopes = Scopes.Split(',')
        });

这是我为每个网址遇到的错误。

【问题讨论】:

    标签: c# asp.net-mvc oauth-2.0 asp.net-web-api2


    【解决方案1】:

    我建议执行以下操作。

    如果您想获得以下授权:

    [Authorize]
    public class AdminController : Controller
    {
      //Action methods here
    }
    

    如果你想禁用它:

        [AllowAnonymous]
        public class AdminController : Controller
        {
          //Action methods here
        }
    

    已编辑

    因此,正如您提到的,您在访问根目录时遇到问题...

    您可以尝试一些事情!

    1.更改端口号

    项目属性 > 网络

    2。删除.vs隐藏文件夹

    1. 转到您的项目文件夹并打开 .vs 文件夹(保持勾选隐藏项目框,因为此文件夹有时可能被隐藏)

    2. 在 .vs 文件夹中 - 打开配置

    3. 看到那里的应用程序主机配置文件了吗?删除那个东西。(不用担心重新编译项目后它会自动重新生成。)

    3.或者尝试创建一个新的虚拟目录

    项目属性 > Web > 创建虚拟目录对我有用

    【讨论】:

    • 但是从根 url 本身我得到了这个错误。我的意思是localhost:4567
    猜你喜欢
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    相关资源
    最近更新 更多