问题标签 [http-status-code-401]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - FancyURLopener、401 和“连接:关闭”的 Python 问题
我是 Python 新手,如果我遗漏了一些明显的东西,请原谅我。
我正在使用 urllib.FancyURLopener 来检索 Web 文档。在 Web 服务器上禁用身份验证时它可以正常工作,但在启用身份验证时会失败。
我的猜测是我需要继承 urllib.FancyURLopener 来覆盖 get_user_passwd() 和/或 prompt_user_passwd() 方法。所以我做了:
然后我尝试打开页面:
我希望 FancyURLopener 能够处理 401,调用我的 get_user_passwd(),然后重试请求。
它不是; 当我调用“f = opener.open()”时,我得到了 IOError 异常。
Wireshark 告诉我请求已发送,并且服务器正在发送带有两个感兴趣的标头的“401 Unauthorized”响应:
然后连接关闭,我发现我的异常,一切都结束了。
即使我在 IOError 之后重试“f = opener.open()”,它也会以同样的方式失败。
我已经验证了我的 my_opener() 类正在通过使用简单的“print 'Got 401 error'”覆盖 http_error_401() 方法来工作。我也尝试过覆盖 prompt_user_passwd() 方法,但这也没有发生。
我看不到主动指定用户名和密码的方法。
那么如何让 urllib 重试请求呢?
谢谢。
.net - Web 服务出现 401 未经授权的错误
我一定错过了一些非常基本的东西。这是场景
我们有一个具有以下设置的 ASP.NET 2.0 WebService (Server 2003):
- SSL
- 综合安全
- 阿诺姆。访问已禁用
- 在 NETWORK SERVICE 下运行
- 暴露(即可以从公共互联网访问)
- 服务使用应用程序用户名/密码从数据库返回数据,不调用另一个 web 服务
- 尽管我也尝试过切换,但没有在服务上设置模拟。
我们有一台与 LAN 断开但使用空中卡的客户端计算机(相同域)。用户使用其 AD 用户名/密码/域登录笔记本电脑。
在代理级别的代码中,我们有service.PreAuthenticate
= true 我们也尝试过使用这两者DefaultCredentials
并DefaultNetworkCredentials
获得相同的结果。
- .NET windows 客户端与 VPN 一起使用
- .NET windows 客户端得到 401: Unauthorized WITHOUT VPN (注意:不返回内部异常)
- IE 可以在有或没有 VPN 的情况下工作。
我的假设(可能不正确)是,如果我将 DefaultNetworkCredentials 传递给代理类,它将传递域凭据以进行身份验证。IE 显然正在做一些魔术来完成这项工作。
我错过了什么?
http - 特定 .pdf 文件的 HTTP 错误 401.3
我刚刚在我的服务器上上传了两个 .pdf 文件。它们都在同一个文件夹中。
第一个可以正常访问,但第二个我收到 HTTP 错误 401.3 “您无权查看此页面”
这对我来说看起来很奇怪。你知道为什么会这样吗?
asp.net-mvc - 我的浏览器中的基本身份验证有什么问题?
我正在尝试转到以下网址:-
没什么好复杂的。请注意我是如何在 url 中获得用户名/密码的?我相信,这是用于基本身份验证。
当我这样做时,请求标头缺少“授权”标头。呃……这不对:(
我在网站上只设置了匿名身份验证。我不想关闭 anon 并打开 basic .. 因为并非所有网站都需要 basic .. 只有几个操作方法。
那么..为什么这不起作用?这与我的代码没有发送 401 挑战或一些废话有关吗?
对于它的价值,我的网站是在 IIS7 上运行的 ASP.NET MVC1(当我在 cassini 上运行它时也会发生同样的事情)。
更新:
如果这是使用基本身份验证(ala 安全漏洞)调用资源的非法方式..那么对于 ASP.NET MVC 网站..每个操作方法(而不是整个站点,例如),这是否可行?
asp.net - 如果用户取消身份验证提示,我可以将用户重定向到另一个页面吗?
在 IIS6 上,如果用户取消身份验证请求,使用 NTLM 身份验证(意思是集成 Windows 身份验证),我如何将他们重定向到另一个页面?我不能只在 web.config 中抓取 401(尝试过)或 401.1(不是 int)。
如果问题是 401 状态,我无法重定向,因为我故意推动 401 以获得响应,是吗?那么,当他们取消浏览器质询时,我该如何捕捉呢?
澄清一下,如果我打开 Firefox 并导航到 IWA 页面,它会显示一个对话框(假设我没有在 about:config 中配置它)并且我键入要使用的 Windows 凭据。我想阻止他们阻止那个盒子。
我希望 IIS6/7 上的每个应用程序都有这种行为。在我们迁移到 IIS7 之前,我最初问过这个问题,因此可以在两者之间更改任何答案。
我需要根据用户取消 401 Auth 请求(即 401.1 错误代码)重定向每个应用程序,而不是每个服务器。
iphone - 401 未经授权在 iPhone 上使用 oauth 和 Twitter
当我尝试使用 登录 twitter 时SA_OAuthTwitterEngine
,收到错误 401 我收到了委托调用:
但是当我尝试在之后发送推文时:
我收到错误 401:
我检查了我的 twitter 应用程序设置:
oauth - mgtwitterengine 和 oauth 401 错误:难以置信
好的......这是我的代码:
控制台显示返回的访问令牌很好(所以它似乎工作)例如。访问令牌:C8A24515-0F11-4B5A-8813-XXXXXXXXXXXXXX
但不是在我的委托上调用 accessTokenReceived 方法,而是使用 401 调用 requestFailed。我怎样才能获得未经授权的 401 并从方法调用中获取访问令牌??????
silverlight - silverlight 3:长时间运行的 wcf 调用触发 401.1(访问被拒绝)
我有一个由 silverlight 3 控件使用的 wcf 服务。Silverlight 客户端使用在运行时从控件的初始化参数构造的 basicHttpBindinging,如下所示:
该服务实现 Windows 安全性。调用按预期返回,直到结果集增加到数千行,此时收到 HTTP 401.1 错误。
Service 的 HttpBinding 定义了 10 分钟的 closeTime、openTimeout、receiveTimeout 和 sendTimeOut。
如果我限制结果集的大小,则调用成功。
来自 Fiddler 的其他观察:当修改 Method2 以返回较小的结果集(并避免该问题)时,控件初始化由 4 个调用组成:
- 服务 1/方法 1——结果:401
- Service1/Method1 -- 结果:401(这次标头包括元素“授权:协商 TlRMTV...”
- 服务 1/方法 1——结果:200
- Service1/Method2 -- 结果:200(1.25 秒)
当 Method2 配置为返回更大的结果集时,我们得到:
- 服务 1/方法 1——结果:401
- Service1/Method1 -- 结果:401(这次标头包括元素“Authorization:Negotiate TlRMTV...”
- 服务 1/方法 1——结果:200
- Service1/Method2 -- 结果:401.1(7.5 秒)
- Service1/Method2 -- 结果:401.1 (15ms)
- Service1/Method2 -- 结果:401.1(7.5 秒)
jquery - 如何使用 jQuery 获取 HTTP 状态码?
我想检查一个页面是否返回状态码 401。这可能吗?
这是我的尝试,但它只返回 0。
asp.net - 如何缩小此 ASP.NET ASMX 到 Exchange 2010 托管 API 设置中的故障点?
由于使用 Exchange Web Services 2010 有点荒谬,尤其是从 .NET 以外的任何东西中,我的任务是在 SOAP Web 服务中包装一些功能,作为其他语言与我们的 Exchange 交互的传递环境。
[杂项] <-(SOAP)-> ASP.NET ASMX Web 服务<-(EWS 托管 API)-> Exchange2010
为了不要求用户为每个操作输入密码,我们使用模拟帐户,因此我们只需要我们要修改的帐户的帐户名。
这一切都很好。使用其中一个模拟帐户。模拟帐户与 api 密钥具有 1:1 的关系,以方便审计。我们设置的其他模拟帐户似乎与工作帐户完全相同,但名称和密码不同,但当我们尝试从 EWS 托管 API 使用它们时,我们会收到以下错误:
请求失败。远程服务器返回错误:(401) Unauthorized。
堆栈跟踪:
正如我所说,当使用与某个其他模拟帐户对应的 API 密钥时,同样的代码可以正常工作;如果我将非工作 api 密钥设置为使用工作模拟帐户,则 api 密钥开始工作。
由于一个帐户有效而另一个帐户无效,我认为这意味着问题不在于我的 Web 服务代码,而在于模拟帐户设置或存在于 Web 和 Exchange 服务器之间的某种配置。但如果是服务器之间的配置,我认为这会阻止所有帐户工作。
同时,我认为我们有一些非常称职的交易所管理员,其中至少有两个人查看了模拟账户并得出结论认为他们不是问题所在。
我们可以从这里去哪里?我想一种可能的解决方案是通过工作模拟帐户引导所有请求并处理审计影响,但如果我们可以避免这种情况,我们愿意这样做。有任何想法吗?