Firefox Developer Edition中的调试产生WSFederationMessageException:ID3204

时间:2017-08-16 16:50:12

标签: visual-studio debugging firefox windows-authentication ws-federation

我非常喜欢Firefox开发人员版,但在过去我发现了多个问题,只是试图让它继续下去,这往往需要管理员干预我曾在其他地方工作过。我遇到的最新一个问题是,当我尝试登录某个Web应用程序时,我在新的客户端站点进行调试(名为XXX.YYY),我收到以下服务器错误。当我使用Internet Explorer作为浏览器时,我不会得到这个。我该怎么做才能纠正它?

  

' /XXX.YYY'中的服务器错误;应用。 ID3204:   WS-Federation SignIn请求必须指定' wtrealm'或者' wreply'   参数。描述:期间发生了未处理的异常   执行当前的Web请求。请查看堆栈跟踪   有关错误及其来源的更多信息   代码。

     

异常详细信息:   Microsoft.IdentityModel.Protocols.WSFederation.WSFederationMessageException:   ID3204:WS-Federation SignIn请求必须指定' wtrealm'要么   ' wreply'参数。

     

来源错误:

     

执行期间生成了未处理的异常   当前的网络请求。有关的来源和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

     

堆栈追踪:

     

[WSFederationMessageException:ID3204:WS-Federation SignIn请求   必须指定一个' wtrealm'或者' wreply'参数]
  Microsoft.IdentityModel.Protocols.WSFederation.SignInRequestMessage..ctor(URI   baseUrl,String realm,String reply)+271
  Microsoft.IdentityModel.Protocols.WSFederation.WSFederationMessage.CreateFromNameValueCollection(URI   baseUrl,NameValueCollection collection)+753
  Microsoft.IdentityModel.Protocols.WSFederation.WSFederationMessage.TryCreateFromUri(URI   requestUri,WSFederationMessage& fedMsg)+57
  Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetSignOutCleanupMessage(HttpRequest的   请求)+34
  Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest的   request,Boolean onPage)+188
  Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(对象   发件人,EventArgs args)+85
  System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   +142 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+92

     

版本信息:Microsoft .NET Framework版本:4.0.30319;   ASP.NET版本:4.6.1590.0

1 个答案:

答案 0 :(得分:4)

我找到了解决方案!事实证明,问题是Firefox Developer Edition默认情况下不会像IE开箱即用的那样使用Windows NT LAN Manager(NTLM)协议进行身份验证。因此,您必须对其进行配置:

  1. 打开Firefox Developer Edition并在地址栏中输入 about:config 。你将会 提示警告。点击“我接受风险!”按钮。
  2. 使用地址栏正下方浏览器顶部的“搜索”字段查找 network.automatic-ntlm-auth.trusted-uris 配置参数。
  3. 双击配置参数的名称,或右键单击该名称并选择“修改”。
  4. 输入您无法通过身份验证的网站的网址。使用格式: https://localhost
  5. 无需指定端口号,也无需指定任何特定页面的路径,因为身份验证适用于逐站点。您可以通过逗号分隔列出多个站点。现在,我尝试在本地调试的我的XXX.YYY网络应用程序运行并验证就好了!