在web.config中允许使用查询字符串的位置路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在web.config中允许使用查询字符串的位置路径相关的知识,希望对你有一定的参考价值。
我在我的web.config中有这个
<location path="ChangePassword.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web> </location>
问题是,在访问页面时,我需要允许使用查询字符串访问此页面,这不起作用:
- 为ChangePassword.aspx?模式=
- 为ChangePassword.aspx?的userid = XX&模式=
我怎样才能做到这一点?当然,参数将始终具有动态值,我无法在web.config中硬编码ID。
编辑以更好地理解问题
目的=未登录用户必须能够访问ChangePassword.aspx页面,其中包含收到的任何查询字符串。
非登录用户的问题:
- 他们可以访问
ChangePassword.aspx
- 他们无法访问
ChangePassword.aspx?parameter=value
答案
如果用户可以访问该页面,则可以向该路径添加查询字符串。
授权机制仅在文件位置上运行 - 您无法使其对查询字符串参数进行操作。
如果要根据参数更改页面行为,则应在页面代码中执行此操作。
您可以轻松访问页面上的查询字符串参数:
Request.QueryString["UserId"]
另一答案
问题不在web.config中:关于标记的设置是正确的。问题是链接
ChangePassword.aspx?Userid=xx&mode=
不允许正确路由到您的页面的字符是“&”。
确保使用正确的Xml编码(其中包括将'&'替换所有'和'字符)编写。
这应该很好:
ChangePassword.aspx?Userid=xx&mode=
或者你可以使用
System.Web.HttpUtility.htmlEncode(yourUrl);
我希望它有用;)
以上是关于在web.config中允许使用查询字符串的位置路径的主要内容,如果未能解决你的问题,请参考以下文章