我必须处理一个遗留应用程序,其中重定向到需要身份验证的资源不起作用。意思是通常:
Login?returnUrl=targetThatNeedsAuthentication
甚至没有生成。
情况如下。有一个实现:
AuthorizeAttribute
其中,像往常一样包含:
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
...
var url = // get url of resource that requires authentication
filterContext.Result = new NewResult(url, false);
}
这里的网址是这样的:
/membersonly/Login?redirectUrl=http://localhos:1234/targetThatNeedsAuthentication/
这是正确生成的。该实现使用继承自 的 NewResult,RedirectResult
具有如下构造函数:
public NewResult(string url, bool preserveForm) : base(url)
任何想法为什么基本构造函数可能无法按预期工作?