2015-04-13 6 views
0

У меня проблемы с моим приложением asp.net 4.0 Web Forms, которое не позволяет анонимному доступу к целевой странице.Формы Аутентификация, не разрешающая доступ к целевой странице

Моя проблема заключается в следующем

  • Если я получить доступ к сайту с помощью URL «локальный/сайт/default.aspx», страница по умолчанию отображается. Когда я нажимаю кнопку входа в систему на странице, пользователи регистрируются как ожидалось.
  • Если я обращаюсь к сайту с использованием URL-адреса «localhost/website», пользователь переходит непосредственно на страницу входа в систему. Ожидаемое поведение заключается в том, что будет отображаться страница «default.aspx».

Я тестирую Windows 7/64 с использованием VS2010. Моя web.config секция выглядит

<authentication mode="Forms"> 
    <forms name=".xxxxADAuthCookie" loginUrl="~/Login.aspx" timeout="45" 
     defaultUrl="~/secure/Default.aspx" slidingExpiration="true" /> 
</authentication> 
<membership defaultProvider="MyADMembershipProvider"> 
    <providers> 
    <clear /> 
    <add attributeMapUsername="sAMAccountName" name="MyADMembershipProvider" 
     type="xxxxx.xxxxxxFormsAuthenticationMembershipProvider" /> 
    </providers> 
</membership> 
<authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
</authorization> 
    <location path="default.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="?" /> 
     </authorization> 
    </system.web> 
    </location> 
+0

Убедитесь, что default.aspx находится в верхней части списка документов по умолчанию. –

+0

Это не помогло. –

+0

Вы хотите получить доступ к default.aspx перед входом в систему? –

ответ

0

Проверьте Web.config: defaultUrl = "~/безопасный/Default.aspx" The "/ безопасный /" папку, не упомянутые в иерархии вы описали выше.

Другой вариант: попытаться заставить маршрутизацию по умолчанию в Global.asax.cs (что-то вроде этого :)

routes.MapRoute(
      "Default", 
      "{controller}/{action}/{id}", 
      new { controller = "website", action = "default", id = UrlParameter.Optional } 
+0

Должны были прояснить ситуацию. У меня есть приложение для веб-форм, а не MVC –

0

Я думаю, что вы можете установить ваш loginUrl = defaultUrl.

<forms name=".xxxxADAuthCookie" loginUrl="~/secure/Default.aspx" timeout="45" 
    defaultUrl="~/secure/Default.aspx" slidingExpiration="true" /> 


<location path="login.aspx"> 
    <system.web> 
    <authorization> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 

Повторите попытку.

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

  • Нет связанных вопросов^_^