Аутентификация форм Asp.Net перенаправляет на ... / myapp / default.aspx вместо ... / myapp / - PullRequest
1 голос
/ 24 августа 2010

После аутентификации asp.net перенаправляет моих пользователей в ... / myapp / default.aspx вместо ... / myapp /

Есть ли способ исправить это?Я думаю, что немного уродливо не упоминать избыточность, чтобы содержать дополнительный default.aspx в URL.

Я попытался поместить следующий код в мою функцию default.aspx.cs page_load, но это приводитцикл перенаправления, потому что он не может определить, имеет ли пользователь доступ к myapp / или myapp / default.aspx:

if (Request.RawUrl.ToLower().EndsWith("/default.aspx"))
  Response.Redirect("./");

Спасибо!

Ответы [ 6 ]

6 голосов
/ 24 августа 2010

Если вы используете контроль входа в систему, решите сами, как будет происходить перенаправление.Используйте событие контроля входа (я думаю, что это аутентификация) и:

if (Request.QueryString["ReturnUrl"] != null)  
{  
    FormsAuthentication.RedirectFromLoginPage("someuserid", false);  
}  
else  
{  
    FormsAuthentication.SetAuthCookie("someuserid", false);  
    Response.Redirect("~/SomePage.aspx");  
} 
1 голос
/ 18 октября 2010

Самый простой способ исправить это - просто удалить атрибут defaultUrl из web.config

<authentication mode="Forms">
    <forms ... defaultUrl="default.aspx" ... />
</authentication>

Когда вы посещаете www.yourwebsite.com/myapp, URL-адрес возврата будет "/ myapp /", и после входа в систему он будет перенаправлен обратно в" / myapp / ".Если вы используете defaultUrl, как указано выше, он будет перенаправлен в «/myapp/default.aspx».На самом деле, я экспериментировал с этим в корне сайта, но я думаю, что он работает так же и для подкаталогов.

0 голосов
/ 20 июля 2011

У меня была такая же проблема. Моя страница входа была default.aspx, и когда вы нажимали приложение, URL перенаправления был установлен в /MyApp/.

Я думаю, что конечным результатом было то, что мне пришлось переименовать мою страницу входа в что-то еще (login.aspx)

0 голосов
/ 24 августа 2010

Это не избыточное перенаправление.

Почему?Потому что когда вы нажимаете / на веб-сервере, веб-сервер все равно перенаправляет вас в /default.aspx.Вы просто позволяете IIS делать это вместо механизма аутентификации.

-Oisin

0 голосов
/ 24 августа 2010

На самом деле нет такого файла, как "./" для обработки на веб-сервере.Должен быть файл по умолчанию, который будет передан клиенту.Потому что никто не хочет печатать "blabla.com/index.aspx" вместо "blabla.com".Ваша проблема заключается в выборе страницы, которая будет вызываться по умолчанию.

В IIS щелкните правой кнопкой мыши свой веб-сайт и выберите свойства.

Существует вкладка, которая содержит «Страница по умолчанию».порядок.Там должно быть несколько веб-страниц, таких как «index.htm, default.aspx и т. Д.».Измените порядок этих имен файлов.Страница, которую вы хотите вызвать, должна быть наверху.

PS: ВАША страница входа и страница входа - это одна и та же страница!Так что это будет называться избыточно!

0 голосов
/ 24 августа 2010

Вам нужно будет посмотреть страницу по умолчанию, настроенную в IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...