2014-01-28 4 views
1

Я кодирую в asp.net 4.5 на IIS 8 и имею главную страницу с элементом управления LoginStatus в меню. Этот элемент управления отображается на каждой странице.Почему элемент управления LoginStatus не перенаправляется на страницу входа в корневой каталог веб-сервера?

<asp:LoginStatus ID="LoginStatus1" runat="server" 
CssClass="loginbutton" LoginText="Log In" Width="50" 
LogoutAction="Redirect" LogoutPageUrl="~/Default.aspx" /> 

Если я просматриваю к: http://localhost/Default.aspx странице в корне сайта и нажмите на Логин, я перенаправлены на страницу входа в систему.

У меня есть настройка IIS, чтобы показать Default.aspx как документ по умолчанию. Однако, если я просматриваю: http://localhost/, который правильно отображает содержимое домашней страницы и нажимает на ссылку «Вход», меня просто перенаправляют обратно на http://localhost, а не на страницу входа.

Что мне нужно сделать, чтобы убедиться, что я могу войти с главной страницы?

==================== ОБНОВЛЕНИЕ ============================================================================================================================================================================ Я не мог понять это, так, так как документ по умолчанию для корня сайта «default.aspx» (обратите внимание на нижний регистр), я положил в следующем коде на Page_Load:

 if (Request.Url.ToString().Contains("default.aspx")) 
      Response.Redirect("Default.aspx"); 

и я теперь, если кто-нибудь отправится в http://localhost/, они перенаправляются на http://localhost/Default.aspx, где управление loginstatus работает нормально. Все еще не знаю причину проблемы, но по крайней мере у меня есть обходной путь.

ответ

2

Укажите страницу входа в web.config.

<authentication mode="Forms"> 
    <forms loginUrl="~/folder/Login.aspx" timeout="2880"/> 
</authentication> 
+0

У меня есть это уже в моем Web.config (без таймаута). Моя проблема в том, что это не работает на страницах, где представлен документ по умолчанию, то есть http: // localhost. – user3072631

+0

У вас есть маршрутизация или что-то еще, что вы можете думать, что противоречит переадресации на страницу входа? – luke2012

+0

Попробуйте протестировать метод, который использует loginURL. Например, создайте кнопку на своей странице по умолчанию и переадресации onClick, используя метод 'FormsAuthentication.RedirectToLoginPage();'. – luke2012

0

Не уверен, что вы нашли решение. Я считаю, что у меня такая же проблема. Кнопка появляется, чтобы не отправлять назад, если у URL-адреса нет файла aspx. например www.mydomain.com/ не работает, но www.mydomain.com/index.aspx. У меня было взломанное решение вместе с использованием сопоставлений url.

<urlMappings enabled="true"> 
      <add url="~/" mappedUrl="~/index.aspx" /> 
    </urlMappings> 

Это действительно работает, но не совсем изящно. Это произошло, когда я обновился до нового сервера с iis 8. Я хотел бы узнать, нашли ли вы лучшее решение. Спасибо

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