Я работаю с настраиваемым поставщиком членства asp.net в сочетании с контроллером учетных записей по умолчанию, который поставляется с примером приложения 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, который поставляется с приложением MVC asp.net по умолчанию:
<%@ 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>
Любая помощь и понимание высоко ценится.