Max*_*Max 7 authentication asp.net-mvc-4 single-page-application
我正在使用AngularJS开发一个SPA应用程序,使用REST Web API,在一个非常小的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)
Run Code Online (Sandbox Code Playgroud)
'returnUrl'的值只是"/"
所以,我正在失去这条道路:我想建立一个具有原始网址的"Connect with Facebook"链接,例如:
http://hostname.com/Login/ExternalLogin?ReturnUrl=%2F#/tasks/XYZ123
但是我不能.
解决这个问题的正确方法是什么?
我可以考虑在没有#tag的情况下创建自己的重定向服务URL,但是这个解决方案意味着额外的工作,并且仅涵盖系统发送带有任务URL的消息的情况 - 人们仍然会尝试从中复制/粘贴位置URL浏览器.
谢谢你的任何提示.
马克斯