Forms authentication 从ReturnUrl访问其他querystring键

Forms authentication 从ReturnUrl访问其他querystring键,forms-authentication,Forms Authentication,我需要从ReturnUrl查询字符串访问其他查询字符串参数 整个站点需要身份验证,因此如果用户未登录或已超时,所有页面都将重定向到登录页面。因此,www.mysite.com/Default.aspx?id=H1234将重新登录到www.mysite.com/login.aspx?ReturnUrl=%2fDefault.aspx%3fid%3dH1234,如果用户随后输入其凭据,将通过id返回Default.aspx,但我还需要在登录页面上检查id 在登录页面上,我可以将Server.urld

我需要从ReturnUrl查询字符串访问其他查询字符串参数

整个站点需要身份验证,因此如果用户未登录或已超时,所有页面都将重定向到登录页面。因此,www.mysite.com/Default.aspx?id=H1234将重新登录到www.mysite.com/login.aspx?ReturnUrl=%2fDefault.aspx%3fid%3dH1234,如果用户随后输入其凭据,将通过id返回Default.aspx,但我还需要在登录页面上检查id

在登录页面上,我可以将Server.urldecodequest.RawUrl发送到:/login.aspx?ReturnUrl=/Default.aspx?id=H1234,但由于这有两个问号,我现在无法访问Request.QueryStringid

我可以使用子字符串方法提取值,但这让我担心,因为id不是固定长度,而且似乎不安全

谷歌似乎没有太多信息,或者至少我问的问题不对

没有答案

这就是我所做的:

私有函数GetParamByVal paramName作为字符串, ByVal paramMaxLength作为整数作为字符串 Dim参数值为String=String.Empty Dim url作为字符串=Server.urldecodequest.RawUrl 如果不是url.containsSparamName,则 返回参数值 如果结束 url=url.Substringurl.LastIndexOf?+1. ExtractParamValueparamName、paramValue、url 如果paramValue.Length>paramMaxLength,则 paramValue=paramValue.RemoveparamMaxLength 如果结束 返回参数值 端函数 及

私有共享子提取器ParamValueByVal paramName作为字符串, ByRef参数值作为字符串, 字节url作为字符串 对于url.Split中作为字符串的每个值对& 如果valuePair.StartWithParamName,则 paramValue=valuePair.SubstringparamName.Length+1 如果结束 下一个 端接头