現在、私は簡単な認証でASP.NETコアのプロジェクトを持っています。認証のカスタムURL
メインコードはYeomanとgenerator-aspnetで生成されました。
生成されたコードには、ユーザーを認証するアカウントコントローラがあります。
ユーザーがログするたびに、asp.netはユーザーをhttp://domain/Account/Loginにリダイレクトします。
このサイトの主な言語は、それは英語ではありませんので、私はこのような何かにURLを変更したい: http://domain/usuarios/login
ので、アカウント・コントローラで、私はクラスの上にルート注釈を追加しました:
[Authorize]
[Route("usuarios")]
public class AccountController : Controller
{
...
[HttpGet]
[AllowAnonymous]
[Route("login")]
public IActionResult Login(string returnUrl = null)
{
...
}
[HttpPost]
[AllowAnonymous]
[ValidadeAntiForgeryToken]
[Route("login")]
public async Task<IActionResult> Login(LoginViewModel model, string returlUrl = null)
{
...
}
}
ここで手動でhttp://domain/usuarios/loginに行くと、ログインページが表示されます。 しかし、認証が必要なページに行くと、ASP.NETコアはまだhttp://domain/Account/Loginにリダイレクトされ、404エラーが返されます。
project.jsonの確認、私は、依存関係のセクションでパッケージを参照してください。
"dependencies": {
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
...
}
スタートアップクラスを開くと、私はConfigureServicesと設定方法コードapp.UseIdentity();
で見たが、何についてのapp.UseCookieAuthentication()
ここで
は、設定方法の一部です:
app.UseStaticFiles();
app.UseIdentity();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
正しいURLにリダイレクトするコードをどこで更新しますか?
PS:あなたはクッキーベースの認証を使用している場合、それは多くのhttps://shellmonger.com/2015/04/04/asp-net-vnext-identity-part-2-the-login-process/
通常、あなたのコードは401状態コードをクライアントに送信します(私はなぜ、「アカウント/ログイン」にリダイレクトされたのか理解できませんでした) 'AutomaticChallenge = true、'を指定しなかった(デフォルトはfalse)。 'AutomaticChallenge'をtrueに設定するか、' [Authorize(ActiveAuthenticationSchemes = "Cookie")] 'を使用してください。 –
@ademcaglin質問を更新します。この質問を投稿した後、コードに 'app.UseIdentity()'というコードがあることがわかります –