У меня есть приложение MVC, которое имеет две области - Администратор и Пользователь.То, что я хотел сделать, это при первом входе в систему, пользователь активирует свою учетную запись, соглашается с условиями и т. Д. Это приложение использует API-членство ASP.
Я вставил оператор IF в действие входа POST в контроллере учетной записи, однако после отладки выясняется, что оператор if никогда не выполняется.Если бы кто-то мог взглянуть на это, я был бы очень благодарен.Я чувствую, что это может быть что-то маленькое, что мне не хватает.
URL-адрес для входа пользователя:
http://localhost:80/Account/LogOn?ReturnUrl=/User
URL администратора:
http://localhost:80/Account/LogOn?ReturnUrl=/Administrator
, однако оба используют одно и то же действие входа в систему в контроллере учетной записи, поэтому, следовательно, необходимо использовать оператор if, чтобы различать два.
Вот код действия POST Logon.Строка returnUrl - это «/ User», а не «User», которую я обнаружил после отладки с помощью кода.
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
string url = returnUrl;
if (url == "/User")
{
ModelContainer ctn = new ModelContainer();
MyApp.Data.User p = ctn.Users.First(t => t.UserID == UserServices.CurrentUserId);
string status = p.AccountStatus;
if (status != "Active")
{
return RedirectToAction("contract", "Home");
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Кажется, что здесь пропускается только что-то другое:
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
string url = returnUrl;
ипереходит прямо к финальному действию RedirectToAction.
Буду очень признателен, если кто-нибудь сможет что-то заметить.Если нужна дополнительная информация, просто кричите!