私は認証にASP.NET IDコアを使用しています。 AngularJS SPAにログインルート(UI-Router)があります。私のユーザーは実際のURLの代わりにエスケープされたURLにルーティングされています。Identity Core LoginPathの特殊文字を設定するにはどうすればよいですか?
私のログインパスは "/#!/ login"に設定されていますが、ユーザーは "/%23!/ login"にルーティングされているため、ブラウザに401が表示されます。
私は、System.Uri.EscapeDataString、System.Uri.EscapeUriStringを使用してみましたが、幸運にもエスケープすることなく試しました。
Startup.cs
services.AddAuthentication()
.AddCookie(cookie =>
{
cookie.LoginPath = System.Uri.EscapeDataString("/#!/login");
})
AngularJSルート
.state('login', {
url: 'login',
views: {
'': { templateUrl: './Home/login.html', controller: "loginController" }
}
})
私は、サーバーは、次の場所で302応答を生成して確認しました: "http://localhost:63939/%23!/login?ReturnUrl=%2Fadministrator"。サーバーは間違いなく "#!"をエスケープしています。ブラウザがやっていることではありません。
HTML 5モードを有効にしましたか? –
これは、角度側の問題ではありません。 "/%23!/ login"が存在しないため、ブラウザに401が表示されています。 – Bloodhound
'url: 'login''の代わりに' url:'#/ login''を試してください。 –