ASP.NET FormsAuthentication не перенаправляет на Default.aspx в корне

У меня есть настройка проверки подлинности форм следующим образом:

Сеть.конфиг:

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

Вход.aspx:

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

вход.aspx и по умолчанию.aspx страницы оба живут в корне приложения.

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

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

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

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

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

1 ответ

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