2012-01-28 5 views
0

Я хотел бы изменить место мой веб-сайт перенаправляет пользователя, когда они не вошли в систему.Как изменить аутентификацию форм loginurl?

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

Он использует AccountController в папке Controllers по умолчанию, метод действия LogOn Вид и приложенный к этому.

У меня есть другая учетная запись AccountController, размещенная в этой папке: Области/SmallSurvey/Controllers/Account имя метода действия то же самое. Я не могу понять, какой синтаксис использовать.

Я пробовал разные имена, но никто из них не работает. Как это изменить?

Global.asax.cs:

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");   

      routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults 
       new[] { "MvcApplication3.Controllers" } 
      ); 
     } 

Это как SmallSurveyAreaRegistration.cs выглядит следующим образом:

public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "SmallSurvey_default", 
       "SmallSurvey/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 

      context.MapRoute("Login", "SmallSurvey/Account/LogOn", 
       new { controller = "Account", action = "LogOn" }, 
       new[] { "MvcApplication3.Areas.SmallSurvey.Controllers" }); 
     } 

При попытке получить доступ к "SmallSurvey/счета/LogOn" я получаю следующее сообщение об ошибке:

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /SmallSurvey/Account/LogOn 

ответ

1
<authentication mode="Forms"> 
    <forms loginUrl="~/SmallSurvey/Account/LogOn" timeout="30" /> 
</authentication> 
+0

Это не работает. Нужно ли мне что-то настраивать на маршрутах? – Kenci

+0

@ Kenci, 'it does not work' - не очень точное описание проблемы. Не могли бы вы быть более конкретными? –

+0

Это ошибка: Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно. Запрошенный URL:/SmallSurvey/Account/LogOn – Kenci

2
Try this ~/SmallSurvey/Account/logon 

[Редактировать ], Основанный на ваш ответ .. следующий должен быть маршрут в вашем районе registration..notice имяобласти в маршруте

context.MapRoute(

     "SmallSurvey_default", 
     "SmallSurvey/{controller}/{action}/{id}", 
     new { action = "Index", id = UrlParameter.Optional }, 
.... 
     ); 
+0

Это не работает. Нужно ли мне что-то настраивать на маршрутах? – Kenci

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