我只是将一个单点登录提供程序集成到我的应用程序中,当它重定向回请求的页面时,它现在发送一个查询字符串参数,这会导致页面无法加载。它的设置方式是:
我的索引方法如下所示:
public ActionResult Index(string ticket)
我认为会接受查询字符串参数。我使用的是默认路由配置,即:
routes.MapRoute(
// Route name
"Default",
// URL with parameters
"{controller}/{action}/{id}",
// Parameter defaults
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 0 :(得分:1)
显然有一些令人愚蠢的事情 - 因为没有充分的理由说明为什么这不起作用。
我敢打赌,如果你取消[授权]属性,你会发现它适用于网址中的?ticket=[value]
位。
如果是这样,那么我认为Forms auth会陷入重定向循环(浏览器,过一会儿就会拒绝继续) - 我认为它不会将当前User
视为{{1}所以重定向到你的SSO。 SSO表示用户已登录,因此使用ticket参数重定向 - ad nauseam。
您可以使用VS调试器简单地调试它,并对您的操作方法进行细分。同样在Http级别进行调试通常更容易:下载Fiddler,然后在启动并运行后使用特殊名称http://ipv4.fiddler而不是http://localhost点击您的网站。
你的代码必须有更多你没有包含的内容 - 大概是某个地方你有代码拦截IsAuthenticated=true
并设置用户在MVC操作方法启动之前进行身份验证?如果是这样 - 我认为这是失败的。