我在与Win Auth的SignalR连接中遇到问题。当我在IIS授权设置中启用匿名时,它可以工作,但有时它会提供HTTP 403 Forbidden错误。在我研究之后,我发现我需要禁用匿名连接。但是当在IIS中禁用并启用windowsAuth时,总会出现HTTP 401.2 UnAuthorized错误。我如何与WinAuth连接?对于我的项目,我需要使用WinAuth。
Not1:我正在使用Silverlight 5。
Not2:我已经在StackOverflow上尝试了可能的解决方案,但没有一个能够工作。
为什么我不能使用WinAuth?它在配置文件,IIS设置以及我的web.config中都可以启用。
我花了2天但仍无法找到解决方案。如果您需要更多信息,请撰写评论。我不确定我能分享哪些其他信息。我不想把很多不必要的文本放在这里。
编辑: 当我使用这段代码时,即如果我明确输入用户名和密码,那么它就可以了。 Internet Explorer首先使用匿名身份验证,然后失败,然后它直接使用NetworkCredentials。这是代码
hubConnection = new HubConnection("URL");
hub = hubConnection.CreateHubProxy("HUBNAME");
hubConnection.Credentials = new System.Net.NetworkCredential("ID", "PASSWORD");
(带有大写字母的那些特定于我的应用。)
那么我如何获得Silverlight应用程序的Windows凭据? DefaultCredentials不适用于silverlight。
答案 0 :(得分:0)
您是否已向集线器添加授权?
[Authorize(Roles = "Admin")]
public class AdminAuthHub : Hub
{
}