認証に新しい ASP.NET ID を使用する単純なアプリケーションに取り組んでいます。将来的にはモバイル アプリを用意する予定なので、Razor Web ページ (MVC やフォームなし) から jQuery から投稿する Web API に認証を配置しました。これまでのところ、投稿は正常に機能し、ユーザーを作成してログインします-API側で。
ただし、そこから先に進む方法を決定することはできません。適切なページを提供できるように IsAuthenticated を設定する必要がありますが、常に false が返されます。Identity は非常に新しいため、利用できるドキュメントはほとんどなく、Web API から実行するほど複雑なものを見つけることができません。
Q: ログイン後に Web API の ID 認証から正しく設定されるように戻す正しい方法は何User.Identity.IsAuthenticated
ですか?
ログイン.cshtml
@if (User.Identity.IsAuthenticated)
{
@RenderPage("/userpage.cshtml");
}
else
{
<form id="loginForm">
<b>Login</b>
<input type="email" placeholder="Email" name="email" id="loginEmail" />
<input type="password" placeholder="Password" name="password" id="loginPassword" />
<input type="submit" value="Log In"/>
</form>
}
<script>
$("#loginForm").submit(function(event)
{
event.preventDefault();
$.post("/api/login/",
{
Username: $('#loginEmail').val(),
Password: $('#loginPassword').val()
}, function ()
{
//???
}, "json");
return false;
});
</script>
ログイン Web API
public class LoginController : ApiController
{
public async void Post(UserInfo info)
{
var manager = new AuthenticationIdentityManager(new IdentityStore());
var result = await manager.Authentication.CheckPasswordAndSignInAsync(HttpContext.Current.GetOwinContext().Authentication, info.Username, info.Password, true);
if (result.Success)
{
//???
}
}
}