【问题标题】:MVC C# activation url redirects to other pathMVC C# 激活 url 重定向到其他路径
【发布时间】: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

这里发生了什么? 感谢您的任何反馈!

【问题讨论】:

  • 您是否尝试禁用简单的会员资格,即使用 &lt;add key="enableSimpleMembership" value="false"/&gt;&lt;add key="autoFormsAuthentication" value="false" /&gt;(并将重定向 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


【解决方案1】:

我删除了完整的内置身份验证(NuGet 包和类) 从我的解决方案中(因为我不需要它们),这使得上述案例按原样工作。我无法详细说明是什么以及如何(我相信其他人可以),但我认为这与身份验证附带的路由有关。

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 2016-07-15
    • 2016-06-21
    • 1970-01-01
    相关资源
    最近更新 更多