为了修复.NET Framework MVC应用程序中的错误ID3206,更改SignInRequestMessage中的上下文wctx是否有任何不利影响?

问题描述

用户使用诸​​如“ https:// server / mvcapp”之类的URL导航到具有passiveRedirectEnabled="true"的.NET Framework MVC应用程序时(请注意,末尾没有“ /”),认的WIF使用SignInRequestMessage之类的上下文(wctx)构建rm=0&id=passive&ru=%2fmvcapp,并且当用户在STS上登录后将用户重定向回应用程序时,会收到错误消息“ ID3206:A SignInResponse消息只能在当前Web应用程序内重定向。”

RedirectToIdentityProvider的子类中覆盖GetReturnUrlFromresponseWSFederationAuthenticationModule确实可以,但是我不太喜欢这种解决方Error - A SignInResponse message may only redirect within the current web application - MVC 2.0 application 部分原因是因为Realm不一定是实际有效的URL(它可能只是一个URI,用于标识依赖方-在这种情况下为mvc应用程序),即使对它们进行了一些调整,这些解决方案也可能会失败。 ,例如,还要测试Reply参数(如果有)。

ta-speot-is评论中有一个解决的问题,事实证明WSFederationAuthenticationModule_RedirectingToIdentityProvider中的Global.asax也有效。例如:

protected void WSFederationAuthenticationModule_RedirectingToIdentityProvider(object sender,RedirectingToIdentityProviderEventArgs e)
{
  e.SignInRequestMessage.Context = "rm=0&id=passive&ru=/mvcapp/";
}

或者甚至是e.SignInRequestMessage.Context = null;而不是更改ru的值。

我喜欢WSFederationAuthenticationModule_RedirectingToIdentityProvider解决方案。使用它有什么缺点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)