我在web.config
中有这个 <location path="ChangePassword.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web> </location>
问题是,在访问页面时,我需要允许使用查询字符串访问此页面,这不起作用:
我该怎么做?当然,参数将始终具有动态值,我无法在web.config中硬编码ID。
编辑以更好地理解问题
目的=未登录的用户必须能够访问ChangePassword.aspx页面,其中包含收到的任何查询字符串。
非登录用户的问题:
ChangePassword.aspx
ChangePassword.aspx?parameter=value
答案 0 :(得分:0)
如果用户可以访问该页面,他们可以在路径中添加查询字符串。
授权机制仅在文件位置上运行 - 您无法对查询字符串参数进行操作。
如果您想根据参数更改页面行为,请在页面代码中执行此操作。
您可以轻松访问页面上的查询字符串参数:
Request.QueryString["UserId"]
答案 1 :(得分:0)
问题不在web.config中:有关标记的设置正确。 问题是链接
ChangePassword.aspx?Userid=xx&mode=
不允许正确路由到您页面的字符是“ &”。
确保使用正确的Xml编码编写(其他方式,它将所有的'&'字符替换为'&')。
这应该很好:
ChangePassword.aspx?Userid=xx&mode=
或者您可以使用
System.Web.HttpUtility.HtmlEncode(yourUrl);
我希望它有用;)