【发布时间】:2019-07-02 10:14:54
【问题描述】:
我有一两年前使用的代码创建了一个通过电子邮件发送的激活链接,使用代码作为参数,我尝试了很多不同的方法,编码,使用其他语法,添加 web.config 设置<pages validateRequest="false" />
requestValidationMode="2.0"
,注解[AllowHtml],在网上试了几十个帖子,但都没有成功。
所以我在这里监督一些事情,我确定但我找不到解决方案。
我得到的错误是: 从客户端检测到有潜在危险的 Request.Path 值 (?)
我使用的格式是
Url.Action("action","controller", new { Id = guidValue }, Request.Url.Scheme)
我的路由是默认的,所以这应该可以工作。
点击后地址栏中的Url是这样的:
http://localhost:52641/Account/Login?ReturnUrl=%2FAccount%2FAccountActivation%2F%3Fid%3Dfc39f53f-6fa7-43d2-b30a-8b4e20f0f237
虽然它应该给我:
http://localhost:52641/Account/AccountActivation?id=fc39f53f-6fa7-43d2-b30a-8b4e20f0f237
这里发生了什么? 感谢您的任何反馈!
【问题讨论】:
-
您是否尝试禁用简单的会员资格,即使用
<add key="enableSimpleMembership" value="false"/>或<add key="autoFormsAuthentication" value="false" />(并将重定向 URL 设置为您自己的)?问题似乎来自选择默认重定向 URL 的简单会员身份验证系统。 -
今晚试试这个,然后在这里发回结果,谢谢 Tetsuya 的建议!
-
@TetsuyaYamamoto,尝试了您的建议,但这一直让我进入登录操作,但是您的评论让我思考,并且由于我没有使用身份验证系统(对于这种情况),我删除了它并且很好现在工作。使用身份验证系统,我需要在 Url.Action(... {UserId = xxx , code = xxx} ...) 中使用 UserId 和 Code 参数,这有效...谢谢!如果您愿意,请随时详细说明答案,这将有助于我更多地了解内置的身份验证和成员资格。
-
@TetsuyaYamamoto,如果您愿意并且还没有这样做,请随时在我的另一篇文章中提出您认为适合做的事情:stackoverflow.com/questions/54589272/… 再次感谢您。
标签: url model-view-controller query-string account url-scheme