我想創建一個局部視圖登錄,而無需刷新整個瀏覽器,當有人在登錄。登錄在局部視圖不工作
登錄控制器完美的作品,也它選擇確定的部分查看它必須稍後顯示。問題是這部分視圖沒有檢測到用戶已經登錄。
如果我刷新網絡(F5),我可以看到用戶正如我所說的那樣記錄良好。
的Controler:
[AllowAnonymous]
public ActionResult Login() {
return PartialView("_Login");
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl) {
if(ModelState.IsValid) {
if(WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe.Value)) {
return PartialView("LogOnPartialView", "Shared");
}
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
return View(model);
}
管窺_login
@using (Ajax.BeginForm("Login", "Account", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "loginControl" }))
{
@Html.AntiForgeryToken()
<div class="form-field">
@Html.EditorFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
</div>
<div class="form-field">
@Html.EditorFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
</div>
<input type="submit" value="Login" />
}
管窺LogOnPartialView
@if (HttpContext.Current.User.Identity.IsAuthenticated)
{
<div>user is logged</div>
}
else
{
<div>user is NOT logged</div>
}
@if(!Request.IsAuthenticated)
{
@Html.ActionLink("Registro", "Register", "Account")
@: |
@Ajax.ActionLink("Login", "Login", "Account", new AjaxOptions { UpdateTargetId = "Login" })
}
else
{
@: Welcome <b>@User.Identity.Name</b>!
@: |
@Html.ActionLink("Logout", "LogOff", "Account")
}
誰能幫助我,好嗎?
嘗試'User.Identity.IsAuthenticated',而不是'HttpContext.Current.User.Identity.IsAuthenticated'? –
兩者都是一樣的。以防萬一我已經嘗試過,它仍然無法工作。 Ty無論如何。 –
很少有開發人員使用自定義'IdentityPrinciple',所以只是檢查你的應用程序中是否有這種情況......是否是表單身份驗證模式? –