2017-01-17 18 views
0

У меня есть формы настройки аутентификации следующим образом:ASP.NET FormsAuthentication не будет перенаправлять Default.aspx в корне

Web.config:

<authentication mode="Forms"> 
    <forms slidingExpiration="true" cookieless="UseCookies" timeout="180" loginUrl="Login.aspx" defaultUrl="Default.aspx" name=".ASPXVEWPAUTH"/> 
</authentication> 
<authorization> 
    <deny users="?" /> 
</authorization> 

Login.aspx:

/**Auth logic in button click**/ 
FormsAuthentication.RedirectFromLoginPage(username, false); 

Страницы Login.aspx и Default.aspx находятся в корне приложения.

Каждый раз, когда я вхожу в систему, он перенаправляет меня обратно на страницу входа. Если я просто перейду прямо к Default.aspx, он перенаправит меня на страницу входа в систему, как и следовало бы, поместит Default.aspx в строку запроса returnUrl, как и следовало бы, тогда, когда я вхожу в систему, она перенаправляет меня обратно в Login.aspx без строки запроса , Если я попытаюсь снова войти в систему, без строки запроса, она все равно вернется к Login.aspx.

Если я изменяю defaultUrl на страницу вне корневого каталога, он перенаправляет все в порядке, без проблем.

Если я изменю FormsAuthentication.RedirectFromLoginPage(username, false); на Response.Redirect("Default.aspx");, перенаправление все еще не работает.

Если я изменю <deny users="?" /> на <allow users="?" />, я могу загрузить Default.aspx просто отлично, перейдя непосредственно к нему, но перенаправление все еще не работает.

У меня здесь полная потеря. Я никогда не видел этого поведения раньше, и у меня нет идей, чтобы попробовать. Почему это не позволит мне перенаправить на страницу внутри корня приложения? Любая помощь приветствуется.

ответ

0

Оказывается, это была проблема с IIS Express. Я попытался запустить его на моем локальном IIS, и он работал нормально. Я переустановил IIS express и теперь, похоже, теперь работает нормально.