C# 401未经授权的错误web api mvc windows身份验证
我有一个错误。我的web服务是用mvc编写的。在配置为使用windows身份验证的IIS中。 下面是fiddler的屏幕截图 当我从浏览器点击URL时,它会给我弹出窗口,输入用户名和密码。 如何避免弹出窗口C# 401未经授权的错误web api mvc windows身份验证,c#,iis-7,asp.net-web-api,http-status-code-401,C#,Iis 7,Asp.net Web Api,Http Status Code 401,我有一个错误。我的web服务是用mvc编写的。在配置为使用windows身份验证的IIS中。 下面是fiddler的屏幕截图 当我从浏览器点击URL时,它会给我弹出窗口,输入用户名和密码。 如何避免弹出窗口 我正在从另一个窗口服务调用此web api。您可以将用户名和密码指定为URL的一部分: http://username:password@www.example.com/foo/bar/baz 注意:仅仅因为你可以,并不意味着你应该。虽然这可能是测试事物的临时解决方案,但我不建议在生产中
我正在从另一个窗口服务调用此web api。您可以将用户名和密码指定为URL的一部分:
http://username:password@www.example.com/foo/bar/baz
注意:仅仅因为你可以,并不意味着你应该。虽然这可能是测试事物的临时解决方案,但我不建议在生产中这样做。在过去,我们就是这样做的。但正如@DiskJunky所指出的,“URL对几乎任何人/任何人都很容易看到”,其中包括您的浏览器历史记录、服务器日志,甚至可能更糟。如果您使用的是WebClient,则需要设置凭据。您是如何从windows服务调用web api的?我在web配置中添加了以下几行,以解决此问题,它成功了
<security>
<authorization>
<add accessType="Allow" users="*" />
</authorization>
</security>
我怀疑这两个web服务可能托管在同一台服务器上。在这种情况下,问题可能是由环回检查引起的。为了进行测试,请尝试在不使用完全限定域名的情况下引用该服务,并查看其是否有效。如果是,请使用以下步骤指定本地计算机上的主机名 方法1:指定主机名(如果需要NTLM身份验证,首选方法)() 要指定映射到环回地址并可连接到计算机上网站的主机名,请执行以下步骤:
**编辑成答案的形式,包括引用链接的详细步骤我的2美分:在部署web应用程序时,我们在请求图像时遇到了一个HTTP 401问题。我们使用WiX作为打包和安装解决方案。 在这种特定情况下,安装程序没有打包映像,因此部署的实例上也不存在路径
有人可能想知道,当一个404(未找到)被期待时,为什么会抛出一个401——我的理解是,由于我们的路径不是直接在根下,而是类似于root/content/images/image.png,并且我提出了匿名请求,我得到了一个401(未经授权)因为我没有浏览目录的权限。我通过在我的请求中添加一个授权头来确认这一点,然后正如预期的那样,我得到了一个404取消对您的网站的保护以修复本地化问题不是最好的主意,雪莉?我们应该在哪里添加这行内容?@Ashkan,理想情况下不应该这样做,但可以将其添加到
Web.config
@DiskJunky tnx的
部分。我在windows中的文件夹权限中发现问题。我将IUser设置到我的文件夹并解决了问题。此更改将成功授权所有用户;因此,禁用您试图实现的任何安全性。如果这解决了您的问题,那么您应该使用“匿名身份验证”而不是“Windows身份验证”。我认为这是因为将密码放入URL是一个安全禁忌。URL对几乎任何人/任何人都很容易看到,而将密码放入其中……至少可以说是不明智的。