Я работаю над приложением ASP.NET MVC 4 и использую «SimpleMembershipProvider». Приложение будет использоваться в интрасети, и для неавторизованных пользователей не будет контента, поэтому я хочу принудительно ввести логин перед тем, как предоставить пользователю фактический контент сайта.Как заставить пользователя войти в систему, чтобы просмотреть какой-либо контент с помощью ASP.NET MVC 4
Я думаю, что это должна быть довольно тривиальная задача, но это первый раз, когда я должен реализовать такую логику, и я также хочу это сделать MVC 4/SimpleMemebrship
, поэтому я обращаюсь за советом.
Я так думаю, что это должно быть реализовано в первую добавить это в web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="15" slidingExpiration="true" enableCrossAppRedirects="false" protection="All" />
</authentication>
все-таки я не буду иметь действие, которое позволит анонимно, так что я думаю, что лучше поставить это Вот.
И меняю маршрут по умолчанию на:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);
Который, как я вижу это, будет единственное действие, которое позволит анонимным. Однако я немного обеспокоен изменением маршрута по умолчанию на Login
. Я не уверен, что это не приведет к неожиданным недостаткам.
У меня тоже есть идея, чтобы сохранить структуру по умолчанию, созданный MVC 4 Internet Template
и просто оставить Index
действия Home
контроллера брать на себя ответственность, но мне не нравится этот сценарий, потому что логика ясна - пользователь должен быть зарегистрирован в чтобы получить какой-либо доступ, и даже Home/Index
- это некоторый доступ на мой взгляд.
Итак, каков способ реализации такого поведения? Каковы основные шаги, которые я должен внести, чтобы реализовать это право?