2013-09-05 5 views
1

У меня есть веб-страницы, которые могут быть доступны, перейдя вURL Rewrite IIS, перенаправление на страницу входа

myapp.mydomain.com/Account/Login 

У меня есть приложение проекта в корневой папке для сайта, но если я изменить конфигурацию маршрутизации в пределах само приложение это сломает вещи.

Я пытаюсь использовать модуль перезаписи URL, так что, когда пользователь запрашивает

myapp.mydomian.com 

он будет перенаправлять его автоматически на полный URL выше.

Не могу понять, как настроить его таким образом!

+0

Чтобы использовать приложение на этот адрес - 'myapp.mydomain.com' - у пользователей должны войти в первую? – Kev

+0

они отправляются на myapp.mydomian.com для входа в систему, это первая страница, которую они должны увидеть – laitha0

ответ

0

На основании вашего ответа в комментариях под вопросом:

«они идут в myapp.mydomian.com войти, вот первую страницу, что они должны увидеть»

Правильный способ заставить пользователей всегда использовать для входа в приложение, использовать атрибут System.Web.Mvc.Authorize.

Не пытайтесь переписывать правила или беспорядок с помощью маршрутов или диск из вашего файла web.config<authorize> элемент конфигурации.

Принимая шаблон MVC Internet Application в качестве примера, у нас есть два контроллера:

  • AccountController
  • HomeController

Если мы хотим обеспечить только некоторые части вашего приложения MVC, то вам d украсить каждый класс контроллера атрибутом [Authorize]. Например:

[Authorize] 
public class HomeController : Controller 
{ 
    .... 
} 

Однако это довольно утомительно, если вы хотите обеспечить безопасность каждого контроллера. Вместо этого вы можете сделать это глобально, добавив строку в свой статический метод RegisterGlobalFilters, который находится в классе FilterConfig. Этот класс находится в папке App_Start вашего проекта (FilterConfig.cs).

Открыть этот файл и убедитесь, что вы добавить следующую строку в RegisterGlobalFilters статический метод:

filters.Add(new AuthorizeAttribute()); 

Например:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new HandleErrorAttribute()); 
    filters.Add(new AuthorizeAttribute()); // <-- Add me 
} 

Также убедитесь, что в вашем web.config файл под вашим system.web разделе у вас есть:

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

Из коробки он должен быть таким же образом настроен.

Для получения дополнительной информации Вы Распознать:

http://www.davidhayden.me/blog/asp.net-mvc-4-allowanonymous-attribute-and-authorize-attribute

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