Ваша проблема в том, что вы делаете перенаправление с MasterPage и используете относительный путь.
Когда вы используете относительный путь, он будет относиться к местоположению страницы содержимого, которая привязана к главной странице, не относительно местоположения главной страницы.
Ваше перенаправление на:
/BuzzEnhance/Account/Account/Login.aspx
почти наверняка приходит со страницы содержимого в папке «Учетная запись», которая связана с вашей главной страницей. Например, если ваша страница входа в систему (/BuzzEnhance/Account/Login.aspx) сама привязана к этой главной странице, она будет перенаправлена на относительный путь Account/Login.aspx
, который преобразуется в /BuzzEnhance/Account/Account/Login.aspx
, именно то, что вы видите .
Лучшее решение - ответ @abatishchev - используйте путь относительно корня приложения ~/Account/Login.aspx
.
Однако это создаст вам еще одну проблему, если, как я подозреваю, ваша страница Login.aspx привязана к той же главной странице. Каждый раз, когда вы обращаетесь к Login.aspx, он выполняет код перенаправления на главной странице, что приводит к бесконечному циклу, пока не истечет время ожидания.
Одним из решений является либо отсутствие привязки вашей страницы Login.aspx к этой главной странице, либо добавление некоторого условного кода, чтобы вы не перенаправляли его на страницу Login.aspx.
Хотя даже лучше, вам вообще не нужно делать перенаправление, если вы используете проверку подлинности с помощью форм и оставляете ее для управления перенаправлением на страницу входа стандартным способом. Если вы хотите отобразить имя пользователя, вы можете использовать HttpContext.Current.User.Identity.Name
- или использовать один из элементов управления входом ASP.NET: LoginStatus
, LoginName
, ...