奇怪的.NET CAS客户端URL编码

时间:2013-10-07 19:21:58

标签: asp.net-mvc cas

我正在使用带有ASP.NET MVC的.NET CAS客户端,我有一个链接允许用户登录到SSO并保持在同一页面上。该链接转到/MyApp/Account/SsoLogin?returnUrl=%2fMyApp%2fMyController%2fMyAction%3fFirstParameter%3d12345%26SecondParameter=54321。已解码,returnUrl应为/MyApp/MyController/MyAction?FirstParameter=12334&SecondParameter=54321

不幸的是,我在CAS之后进入控制器操作的原始网址是/Account/SsoLogIn?returnUrl=/MyController/MyAction?FirstParameter&SecondParameter=54321

因此返回URL已被解码,第一个参数的值消失了。这适用于某人已经使用SSO进行身份验证以及尚未进行身份验证的情况。我打开了Firebug,看看他们已经验证的情况发生了什么。这就是我所拥有的:

302, location is https://ssoserver/cas/login?service=http%3a%2f%2flocalhost%3a10001%2fMyApp%2fAccount%2fSsoLogIn%3freturnUrl%3d%2fMyApp%2fMyController%2fMyAction%3fFirstParameter%3d12345%26SecondParameter%3d54321

然后我们又有了另一个302:

302, location is http://localhost:10001/MyApp/Account/SsoLogIn?returnUrl=/MyApp/MyController/MyAction?FirstParameter=12345&SecondParameter=54321&ticket=someUglyString

这里我们首先看到两个问号。

然后我们有第三个302:

302, location is http://localhost:10001/MyApp/Account/SsoLogIn?returnUrl=/MyApp/MyController/MyAction?FirstParameter=12345&SecondParameter=54321

更多的双问号。现在最后302:

302, location is /MyApp/MyController/MyAction?FirstParameter&SecondParameter=54321

然后我们在尝试加载/MyApp/MyController/MyAction?FirstParameter&SecondParameter=54321时遇到500错误,该错误本应为/MyApp/MyController/MyAction?FirstParameter=12345&SecondParameter=54321

有什么想法吗?

0 个答案:

没有答案