我正在與asp.net MVC示例應用程序附帶的默認帳戶控制器一起使用自定義asp.net成員資格提供程序。一切都很順利,除了一件小事情:用戶創建一個帳戶並自動登錄並重定向後,其用戶名不會顯示出正常的歡迎信息。MVC中的登錄控制在帳戶創建重定向後不顯示用戶名
我想也許這是因爲他們在提出請求時沒有登錄。一旦他們再次登錄他們的名字出現在頂部,所以我不認爲這是會員供應商的錯誤,但我可能是錯的。
寄存器和重定向器方法附帶asp.net MVC是這樣的:
public ActionResult Register(string userName, string email, string password, string confirmPassword)
{
ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
if (ValidateRegistration(userName, email, password, confirmPassword))
{
// Attempt to register the user
MembershipCreateStatus createStatus = MembershipService.CreateUser(userName, password, email);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuth.SignIn(userName, false /* createPersistentCookie */);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("_FORM", ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed, redisplay form
return View();
}
這是通過使用方式窗體身份驗證。
編輯:這是索引頁面使用的主頁面。這是的Site.Master附帶的默認asp.net MVC應用程序:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<div id="header">
<div id="title">
<h1>Internship Site</h1>
</div>
<div id="logindisplay">
<% Html.RenderPartial("LogOnUserControl"); %>
</div>
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("About", "About", "Home")%></li>
</ul>
</div>
</div>
<div id="main">
<noscript>Your browser does not support JavaScript!</noscript>
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<div id="footer">
</div>
</div>
</div>
非常感謝任何幫助和見解。
是你的登錄控件顯示使用AJAX,如果是這樣,你看到的主要是在IE中這個問題呢?有一些技巧讓IE能夠正確刷新ajax面板。 – 2009-08-24 17:13:44
我目前沒有使用AJAX。我一直在做Firefox的大部分測試。不過好想,我也遇到過。 – 2009-08-24 17:20:17