ASP.NET MVC4 の非常に小さな層の上で、REST Web API と連携する AngularJS を使用して SPA アプリケーションを開発しています。ここでは重要ではない理由により、MVC4 のデフォルトの Account Controller は使用していません。
基本的には、ユーザー間で「タスク」を共有したい。私の目標は、特定の「タスク」エンティティの 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 を持つ「Connect with Facebook」リンクを作成したいと思います。
http://hostname.com/Login/ExternalLogin?ReturnUrl=%2F#/tasks/XYZ123
でもできないんです。
この問題を解決する正しい方法は何ですか?
# タグなしで独自のリダイレクト サービス URL を作成することも考えられますが、この解決策は追加の作業を意味し、システムがタスク URL を含むメッセージを送信している場合のみをカバーします。ブラウザ。
ヒントをありがとう。
マックス