所以我使用Intranet模板创建了一个新的ASP.NET MVC项目.web.config包含适当的值(例如<authentication mode="windows"/>).
如果我使用VS网络服务器启动Web应用程序,它看起来都很好 - 页面显示我的Windows域和用户名以及所有内容.但是,这适用于Opera和Safari以及IE和FF,它告诉我它根本不使用Windows身份验证(因为据我所知,这在除IE/FF之外的任何浏览器中都不起作用).
下一步是通过本地IIS使其工作.我创建一个指向www.mysite.mydomain到127.0.0.1的hosts文件条目.因此,在IIS中,我创建了一个绑定到www.mysite.mydomain的网站,并启用Windows身份验证并禁用匿名身份验证.
我已设置IE和FF以启用Windows身份验证,如下所示:
IE
FF
将"www.mysite.mydomain"放入network.automatic-ntlm-auth.trusted-uris配置设置.
但是当我在IE/FF中拨打www.mysite.mydomain时,我会收到登录提示.有趣的是,即使我在这里输入我的Windows登录信息,它仍然会失败并再次向我显示登录提示.
我们这里没有活动目录,但我的理解是它应该可以正常使用本地帐户.
我想不出我需要做的任何其他事情.有什么建议?
编辑:我们最近切换到使用Active Directory,问题仍然存在.
编辑:当我取消登录提示时,我将进入"IIS 7.5详细错误"页面,其中包含以下信息:
HTTP错误401.2 - 未经授权由于身份验证标头无效,您无权查看此页面.**
iis asp.net-mvc ntlm windows-authentication http-status-code-401
是否可以在npm install使用NTLM身份验证的HTTP代理后面运行?如果是,我该如何设置服务器的地址和端口,用户名和密码?
我创建了一个WCF服务并将其部署在Server上.当我浏览这个服务时,它使用?wsdl URL给出了积极的回应.现在我正试图通过WCF测试客户端测试服务.它显示正确的元数据.但是当我尝试从服务中调用任何方法时,它会向我显示异常...这里是堆栈跟踪的错误细节.
HTTP请求未经授权,客户端身份验证方案为"匿名".从服务器收到的身份验证标头是"Negotiate,NTLM".
服务器堆栈跟踪:
在
System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest请求,HttpWebResponse响应,WebException responseException,HttpChannelFactory factory)
HTTP请求未经授权使用客户端身份验证方案"Anonymous".从服务器收到的身份验证标头是"Negotiate,NTLM".
服务器堆栈跟踪:
在
System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest请求,HttpWebResponse响应,WebException responseException,HttpChannelFactory工厂)
客户端绑定:
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IServiceMagicService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
服务器绑定:
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_SEOService" closeTimeout="00:10:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="true" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="999524288" maxReceivedMessageSize="655360000" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="900000" …Run Code Online (Sandbox Code Playgroud) 我知道有很多关于SO的问题与此类似,但我找不到这个问题.
有几点,第一点:
我正在尝试编写一个简单的控制台应用程序来使用Sharepoint Web Services操作Sharepoint数据.我添加了服务参考,以下是我的app.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ListsSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="Ntlm" proxyCredentialType="Ntlm" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://subdomain.companysite.com/subsite/_vti_bin/Lists.asmx"
binding="basicHttpBinding" bindingConfiguration="ListsSoap"
contract="ServiceReference1.ListsSoap" name="ListsSoap" />
</client>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
static void Main(string[] args)
{
using (var client = new ListsSoapClient())
{
client.ClientCredentials.Windows.ClientCredential = new …Run Code Online (Sandbox Code Playgroud) 我遇到Visual Studio 2013和我们的公司代理问题(登录不起作用,更新不起作用,Visual Studio库不起作用,nuget和git失败).所有这些都在做http或https请求.(例如http://visualstudiogallery.msdn.microsoft.com/).在VS2013中,我只是获得了旋转进度条或没有网络连接的消息.
浏览器(chrome,IE,firefox)没问题,因为他们都理解代理(407拒绝,然后用凭据回复).
所以我想弄明白为什么VS2013不起作用.但是当我告诉fiddler2观看DEVENV.EXE进程(或所有进程)时,我看不到任何流量.
顺便说一下,我已经尝试对web.config(devenv.exe.config)文件进行一些更改,以确保它转到代理(我在堆栈生成器中看到了这个),但它对我不起作用.请参阅以下部分的补充内容:
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy proxyaddress="http://gw6.OURSITE.com:3128" />
</defaultProxy>
<settings>
<ipv6 enabled="true"/>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
Run Code Online (Sandbox Code Playgroud)
埃里克,我接受了你的建议并把它塞进C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config文件中.
我放的是:
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
</defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)
我发现VS2013没有发送用户代理字符串.它确实知道#407 naks并且它使用凭据进行回复,但网关仍然需要用户代理:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Connection: close
Content-Length: 1341
<html>
<head>
<title>Access Policy Denied: No User-Agent Specified</title>
<meta name="description" content="Web Access Policy">
</head>
<body>
Run Code Online (Sandbox Code Playgroud) 我有一个网站,我允许我使用我的信用卡(Windows)自动登录并使用Internet Explorer我可以将"用户身份验证"下的选项设置为"使用当前用户名和密码自动登录",但我'我想使用谷歌浏览器.但是,它总是提示我用户/通行证,我希望它像IE一样设置.任何人都知道这是否可行?谢谢!
我正在搜索使用以下身份验证类型之一的公共HTTPS站点的示例- 这些站点将用作当前正在开发的应用程序的测试服务器.
BASIC身份验证
DIGEST身份验证
NTLM身份验证
测试服务器需要使用SSL以及上述auth类型之一.任何网站建议?优选地,站点应提供免费帐户.
谢谢!
克里斯
我正在尝试在我的WebAPI项目中启用CORS支持,如果我启用匿名身份验证,那么一切正常,但是使用Windows Auth +禁用匿名身份验证,发送的OPTIONS请求始终返回401未经授权的响应.请求它的站点位于DOMAIN上,因此应该可以进行呼叫,有没有办法解决问题而不禁用Windows身份验证?
我使用HTTP代理在公司Windows网络(我登录)上工作.当我使用Internet Explorer时,它神奇地使用代理而无需输入我的密码.某些其他程序似乎也管理这个,就像JavaWebStart有一个"使用浏览器设置"选项.
然而,当我使用脚本/像卷曲或wget的方案,从http取东西,或者我的Java代码我似乎需要有地方存储我的密码,这显然不是最好的安全范围内做到这一点.
如何以编程方式获得Internet Explorer所具有的无密码访问权限?
我主张这是一个堆栈溢出的问题,因为我是一个程序员,我需要我的程序/脚本,而无需在输入密码的工作,虽然我可以看到,别人可能会认为它属于在服务器故障/超级用户.
我知道像curl中的--proxy-ntlm这样的设置,但是这仍然需要一个ntlm用户名和密码.
我们这里有一个使用基于NTLM的Windows身份验证的asp.net 3.5应用程序.该系统在专用网络上运行,该网络实际上分布在不同的地理位置(通过VPN连接).
我们现在正在尝试优化网站的性能.由于NTLM的工作方式,每个对IIS的新请求都由3个不同的请求组成,而前2个是401个响应.我们正在尝试将这些请求的数量最小化,仅在会话开始时.我们找到了解决方案.不幸的是它并没有改变任何东西,我们继续得到这个401响应(消耗时间).
为了看到我第一次使用Fiddler应用程序的流量.不知何故,当我使用Fiddler时,在会话开始时只有一个身份验证过程(完全按照我的意愿),但当我关闭Fiddler并通过WireShark检查流量时,我可以看到每个请求仍然有401响应.
使用的客户端是IE6,IIS版本6.
有人可以提供建议吗?