当用户单击我的站点中需要身份验证的链接时,浏览器将重定向到登录页面.登录页面包含returnUrl查询字符串参数.问题是,如果用户使用OpenID进行身份验证,则提供程序会将用户重定向回登录页面,并且不包含returnUrl参数,这非常无聊,因为我将用户重定向到主页而不是尝试的页面.
我正在使用DotNetOpenID,有没有办法解决这个问题?
这真的很容易,布鲁诺.打电话吧
IAuthenticationRequest.AddCallbackArguments("returnUrl", Request.QueryString["returnUrl"]);
这将告诉DotNetOpenId在登录页面上保留returnUrl参数并获得您想要的行为.我不同意弗朗西关于将显示登录页面的URL与处理结果的URL分开.对于可能适合的ASP.NET MVC站点,但对于ASP.NET Web表单来说真的不是这样,因为除了向用户显示任何错误之外,您无疑还希望再次显示登录表单.此外,就逻辑分离而言,DotNetOpenId库为您完成了所有繁重工作,因此您的代码隐藏页面几乎没有任何逻辑.