标签: http-status-code-401

.NET Core 2.2 JWT 令牌授权失败不返回 HTTP 401

我遇到了 .NET Core 如何在我的生产环境中处理 JSON Web 令牌 (JWT) 身份验证的问题。我正在使用 Postman 进行测试。如果我使用有效的令牌调用我的 API,它可以正常工作并从 API 端点返回预期的响应。但是,如果令牌已过期,我将不会收到预期的 HTTP 401。事实上,我没有收到任何响应,它只是悄悄地失败了。我的生产配置似乎不起作用。如果我在本地开发环境中对此进行测试,我不会遇到任何问题,并且过期的令牌会像预期的那样获得 401 未授权的 HTTP 响应。

我的 Web 应用程序对通过网站登录的人使用 cookie 身份验证,对连接到 API 的人使用 JWT 身份验证。这是 JWT 身份验证的配置。这是在 Startup.cs 中。这是 services.Authentication 的 JWT 配置部分。cookie 身份验证首先设置并且是默认身份验证方案。

.AddJwtBearer(options =>{
options.RequireHttpsMetadata = !_hostingEnvironment.IsDevelopment();

options.TokenValidationParameters = new TokenValidationParameters
{
    ValidateIssuer = true,
    ValidateAudience = true,
    ValidateLifetime = true,
    ValidateIssuerSigningKey = true,

    ValidIssuer = Settings.Api.JwtBearer.TokenValidation.ValidIssuer,
    ValidAudience = Settings.Api.JwtBearer.TokenValidation.ValidAudience,
    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Settings.Api.JwtBearer.TokenValidation.IssuerSigningKey))
};

options.Events = new JwtBearerEvents()
{
    OnAuthenticationFailed = context => …
Run Code Online (Sandbox Code Playgroud)

authentication http-status-code-401 jwt asp.net-core

1
推荐指数
1
解决办法
7225
查看次数

如何停止来自TFS 2008的401回复

每当Visual Studio向TFS发出Web请求时,Fiddler都会显示401 Unauthorized错误.然后,Visual Studio将使用适当的Authorization Negotiate标头再次尝试,TFS将使用正确的数据和200状态代码进行响应.

如何在第一次停止401时获取正确的标头?

tfs authorization tfs2008 http-status-code-401

0
推荐指数
1
解决办法
1303
查看次数

Jquery - getJSON 401"bug?"

我有一个jquery getjson的问题.

这段代码有效

$.getJSON('http://twitter.com/status/user_timeline/USERNAME.json?count=10&callback=?', function(twitter_data)
{
    alert('works');          
});  
Run Code Online (Sandbox Code Playgroud)



这段代码不?

$.getJSON('https://api.twitter.com/1/account/verify_credentials.json?callback=?', function(twitter_data)
{
   alert('no alert ?');
}); 
Run Code Online (Sandbox Code Playgroud)

但为什么?有任何想法吗?

示例 - > http://jsfiddle.net/4wWJW/2/

提前谢谢!
彼得

jquery getjson http-status-code-401

0
推荐指数
1
解决办法
2198
查看次数

具有基本身份验证的C#Windows应用商店HTTP HTTPClient导致401"未经授权"

我正在尝试向使用BASIC身份验证和https保护的服务发送HTTP GET请求.如果我使用RESTClient Firefox插件这样做没有问题.我正在定义basic-header并将GET发送到url,我得到了答案(json中的数据).

现在我正在使用C#中的Windows应用商店应用程序来使用该服务.我在清单中启用了所有必需的功能,并编写了以下方法:

private async void HttpRequest()
        {
            string basic = "Basic ...........";

            Uri testuri = new Uri(@"https://...Servlet");

            HttpClient client = new HttpClient();

            client.DefaultRequestHeaders.Add("Authorization", basic);

            Task<HttpResponseMessage> response = client.GetAsync(testuri);
            var text = await response;
            var message = text.RequestMessage;
        }
Run Code Online (Sandbox Code Playgroud)

我尝试了许多不同的可能性,例如获取响应字符串但是所有内容都会导致服务器发出401状态代码答案.

我查看了许多类似的问题,我对通信的理解如下:客户端请求 - >服务器响应401 - >客户端发送授权标头 - >服务器响应200(确定)

我不明白为什么我得到401"未授权"状态代码,虽然我在开始时发送授权标题.如果有人知道如何在RESTClient中处理它,那将会很有趣.

BASIC标题是完全正确的我将它与RESTClient中的标题进行比较.

如果有人可以帮助我,这将是很好的.

在此先感谢您的亲切问候,Max

c# basic-authentication http-status-code-401 dotnet-httpclient

0
推荐指数
1
解决办法
2733
查看次数

无法获得.net核心MVC将401重定向到/ Account/Login

当我请求[授权]装饰的控制器操作而不是重定向到登录页面时,我收到401错误.

这是一个使用IIS Express上运行的身份模板的.net核心mvc应用程序.

当我从program.cs运行应用程序时,重定向到登录工作正常.我已经为cookie身份验证添加了明确的指示,以便在配置和服务部分使用/ Account/Login重定向,以及配置Identity来执行此重定向.

我无法让它发挥作用.下面是我的StartUp类,我应该更改什么才能使它在IIS express中运行?:

public class Startup
{
    private MapperConfiguration _mapperConfiguration { get; set; }

    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

        if (env.IsDevelopment())
        {
            // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
            builder.AddUserSecrets();
        }

        builder.AddEnvironmentVariables();
        Configuration = builder.Build();

        _mapperConfiguration = new MapperConfiguration(cfg =>
        {
            cfg.AddProfile(new AutoMapperProfileConfiguration());
        });
    }

    public IConfigurationRoot Configuration { get; }

    // This method gets called by the …
Run Code Online (Sandbox Code Playgroud)

redirect http-status-code-401 iis-express asp.net-identity asp.net-core-mvc

0
推荐指数
1
解决办法
2278
查看次数