2015-02-17 3 views
1

У меня есть приложение MVC с функцией входа в систему, и у меня есть несколько пустых элементов управления, например: Home. Домашний контроллер не содержит ничего. Контроллер «Вид для дома» является стандартным домашним представлением по умолчанию, созданным Visual Studio. И есть странная вещь: Когда я запускаю свое веб-приложение, оно начинается с учетной записи/входа . Но если я нажму на меню (или даже если я наберу путь к Home/Index), он автоматически перенаправит меня обратно на учетную запись/Login Если я набираю Account/SignUp - он работает нормально. Но если я перейду к любому виду моих пустых контроллеров, я получаю эту странную переадресацию. У меня не было этой проблемы в других проектах. Так что я немного застрял. Пожалуйста, порекомендуйте.Странное перенаправление в MVC

+1

У вас есть атрибут authorize на других контроллерах/действиях? –

+1

Возможно, у вас есть атрибут Authorize, применяемый через фильтры Global, и поскольку вы не вошли в систему, вы автоматически перенаправляетесь на страницу входа в систему? –

+0

ops ... да, я делаю :) спасибо –

ответ

1

На самом деле, как наилучшая практика, вы, , должны иметь AuthorizeAttribute, применяемые ко всему сайту. Он лучше всего работает в вашем файле FilterConfig.

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
     filters.Add(new AuthorizeAttribute()); 
    } 
} 

Затем вы должны использовать AllowAnonymous атрибута для селективной часть вашего сайта доступна без регистрации (например, на домашней странице).

public class HomeController 
{ 
    [AllowAnonymous] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

Для получения более подробной информации см. this article.

Смежные вопросы