Я работаю с настраиваемым поставщиком членства 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, который поставляется с приложением 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>
Любая помощь и понимание очень ценятся.