0

我在頁面相當正常的標誌,只是用戶名和密碼字段:用戶AuthCookie後,仍然沒有通過認證加

<h2>Sign in</h2> 

@Html.ValidationSummary() 

@using (Html.BeginForm("SignIn")) 
{ 
    <p> 
     @Html.LabelFor(model => model.Username) 
     @Html.TextBoxFor(model => model.Username) 
    </p> 
    <p> 
     @Html.LabelFor(model => model.Password) 
     @Html.PasswordFor(model => model.Password) 
    </p> 
    <input type="submit" value="Submit"/> 
} 

我有一個像下面定義在行動的跡象:

[HttpPost] 
[ActionName("SignIn")] 
public ActionResult SignInConfirmation(UserCredentialsModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     var userIsValid = Membership.ValidateUser(model.Username, model.Password); 

     if (userIsValid) 
     { 
      FormsAuthentication.SetAuthCookie(model.Username, false); 

      return RedirectToAction("Index", "Home"); 
     } 
     ModelState.AddModelError(string.Empty, "Incorrect username and\\or password."); 
    } 

    return View(); 
} 

除此之外,我還有一部分內容會顯示「請登錄」或「歡迎用戶」,具體取決於它們是通過身份驗證還是現在。

我可以看到,Cookie是通過調試代碼和通過Fiddler創建並返回的。

當部分被擊中,雖然,用戶永遠不會驗證:

[ChildActionOnly] 
public ActionResult Index() 
{ 
    if (User.Identity.IsAuthenticated) // =< This is always false. 
    { 
     var userDetailsModel = new UserDetailsModel 
     { 
      UserName = User.Identity.Name 
     }; 

     return PartialView("Authenticated", userDetailsModel); 
    } 
    return PartialView("Unauthenticated"); 
} 

我也試着用手滾動的FormsAuthenticationTicket像這樣:

var userData = JsonConvert.SerializeObject(new { model.Username }); 
var issueDate = DateTime.Now; 
var authenticationTicket = new FormsAuthenticationTicket(1, 
    model.Username, 
    issueDate, 
    issueDate.AddMinutes(5), 
    false, 
    userData); 

但同樣的結果...

爲什麼我從未認證?

+0

你有沒有像 在你的web.config –

+0

@SerifEmek這沒有竅門,謝謝。你想把它作爲答案嗎? – BanksySan

回答

1

你在web.config中有類似<authentication mode="Forms">的東西 你應該擁有它。

相關問題