![](/img/trans.png)
[英]Enable both Windows authentication and Anonymous authentication in an ASP.NET Core app
[英]Enable both Basic and Windows authentication
我在IIS7上使用Windows身份验证启用了我的服务。
<binding name="Soap.HttpsBinding" closeTimeout="00:05:00"
openTimeout="00:05:00" receiveTimeout="00:05:00" sendTimeout="00:05:00">
<security mode="Transport">
<transport clientCredentialType="Windows" proxyCredentialType="None">
<extendedProtectionPolicy policyEnforcement="WhenSupported" />
</transport>
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
我的客户端使用相同的绑定详细信息成功连接到它。
我最近要求添加基本身份验证以支持一些遗留系统。 我认为我知道的一切都说我们可以并排运行。
我启用了基本身份验证,旧系统可以连接。 但是,我们现有的所有WCF客户端现在都抛出以下异常:
MessageSecurityException:HTTP请求未经授权,客户端身份验证方案为“Negotiate”。 从服务器收到的身份验证标头是'Basic realm =“mydomain.local”,Negotiate,NTLM'。
问候,Rob。
好吧,事实证明这是我遇到的更具误导性的Microsoft错误消息之一。
正在初始请求上创建401身份验证错误,而不会在事件查看器中记录任何异常。
答案似乎是使用system.webServer - > httpErrors
由于我想在URL中使用波浪号(〜),我将配置设置为以下内容:
<httpErrors>
<clear />
<error statusCode="401" responseMode="ExecuteURL" path="~/error.xml" />
</httpErrors>
无论是使用代字号还是ExecuteURL,我最终发现使用以下工作:
<httpErrors>
<clear />
<error statusCode="401" responseMode="File" path="/error.xml" />
</httpErrors>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.