如何解决为了修复.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
的子类中覆盖GetReturnUrlFromresponse
或WSFederationAuthenticationModule
确实可以,但是我不太喜欢这种解决方案
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 举报,一经查实,本站将立刻删除。