Когда я перехожу на свою домашнюю страницу, тэг [Авторизовать] перенаправляет меня на страницу входа (хорошо!). Но после ввода учетных данных кажется, что он просто обновляет страницу входа (плохая!).Как остановить цикл авторизации?
Главная Контроллер:
[Authorize]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
//other code
}
Контроллер счета:
[Authorize]
public class AccountController : Controller
{
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel loginModel, string returnUrl)
{
UserRoles userRoles = new UserRoles();
UserRole userRole = userRoles.DbSet.FirstOrDefault(u => u.User == loginModel.UserName);
if (ModelState.IsValid && Membership.ValidateUser(loginModel.UserName, loginModel.Password))
{
return RedirectToLocal(returnUrl);
}
ModelState.AddModelError("", "Bad login");
return View(loginModel);
}
//other code
}
Edit 1:
loginModel
передается автоматически после того, как я заполнить формы входа.
returnUrl
- ранее посещаемый адрес, в данном случае это домашний контроллер. По умолчанию это также домашний контроллер.
Я думаю, что проблема может быть вызвана тем, что пользователь не установил подлинность, поэтому, когда он возвращается к Домашнему контроллеру, тег [Авторизовать] активируется снова. Ребята, что вы думаете?
Edit 2: В Global.asax.cs:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
Нет пользовательского маршрута таблица здесь все по умолчанию.
В Web.Config:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
Правильно подключен к моему Вход функций.
Проверка подлинности членства, я его протестировал.
OH MY GOD! Полностью забыл мои куки в духовке! Огромное спасибо! –