2009-06-03 2 views
1

Я использую ASP.Net MVC, но я думаю, что это применимо и к ASP.Net.Является ли ASP.Net (MVC) перенаправлением на регистрационную форму при создании HttpUnauthorizedResult?

Исследование того, как работает авторизация. Я пришел к выводу, что ASP.Net MVC генерирует HttpUnauthorizedResult, когда пользователь не авторизован и должен быть. А затем ASP.Net читает с моего Web.config:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880"/> 
</authentication> 

и создает фактический URL-адрес и результат перенаправления. Или сформулировано по-другому: правильно ли утверждать, что приложение ASP.Net MVC никогда не генерирует URL-адрес перенаправления?

Моя проблема заключается в том, что я хочу добавить некоторые вещи к URL-адресу переадресации, но единственное, что, как мне кажется, я могу сделать, - это уловить HttpUnauthorizedResult и сгенерировать полное перенаправление URL-адресов с нуля. Может быть, есть метод в ASP.Net, который даст мне перенаправление на основе моего файла конфигурации, так что мне не нужно самостоятельно читать конфигурационный файл?

ответ

0

URL, без каких-либо автоматических вещей добавили, такие как ReturnUrl, так же, как он настроен, может быть получен с:

System.Web.Security.FormsAuthentication.LoginUrl 
1

Попробуйте следующее - System.Web.Security.FormsAuthentication.RedirectToLoginPage(string extraQueryString), где extraQueryString - строка запроса для включения с URL-адресом переадресации.

+0

Это, безусловно, шаг в правильное направление. Этот метод точно не может работать для меня, потому что мне нужен URL-адрес или RedirectResult, я не хочу перенаправлять сразу. Я пробовал LogInUrl() в том же классе, но у него нет аргумента ReturnUrl. – Pablo