我正在使用 AngularJS 和 REST Web API 开发一个 SPA 应用程序,它位于一个非常小的 ASP.NET MVC4 层之上。由于这里不重要的原因,我没有使用 MVC4 的默认帐户控制器。
基本上,我想在用户之间共享“任务”。我的目标是能够通过电子邮件将特定“任务”实体的 URL 发送给任何用户。单击该 URL 应启动身份验证。成功验证后,我想显示真实的任务页面信息。
AngularJS 使我的 URL 带有 # 符号,或者显示任务“XYZ123”的页面的 URL 是: http ://hostname.com/#/tasks/XYZ123
ASP.NET 将未经授权的对该 URL 的访问重定向到: http ://hostname.com/Home/Login?ReturnUrl=%2f#/tasks/XYZ123
这没关系,但是相关的控制器方法从 # 中“剪掉”了路径,所以在:
public ActionResult Login(string returnUrl)
'returnUrl' 的值将只是“/”
所以,我失去了路径:我想建立一个具有原始 URL 的“与 Facebook 连接”链接,例如:
http://hostname.com/Login/ExternalLogin?ReturnUrl=%2F#/tasks/XYZ123
但是我不能。
解决此问题的正确方法是什么?
我可以考虑创建自己的不带 # 标记的重定向服务 URL,但此解决方案意味着额外的工作,并且仅涵盖系统发送带有任务 URL 的消息的情况 - 人类仍会尝试从浏览器。
感谢您的任何提示。
最大限度