ASP.Net Страница входа в приложение MVC 2 как startuppage

#model-view-controller #asp.net-mvc-2

#model-view-controller #asp.net-mvc-2

Вопрос:

Уважаемые все, я хочу отключить анонимный доступ к моему приложению MVC 2, для этого я добавляю приведенный ниже код в файл web.config <deny users="?" />
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
После запуска этого приложения со страницы входа, но оно не использует стили masterpage и css

Это код страницы входа в систему

`<%@ Page Language=»C #» MasterPageFile=»~/Views/Shared/Site.Master» Наследует=»System.Web.Mvc.ViewPage» %>

Войдите в систему

Войдите в систему

Пожалуйста, введите свое имя пользователя и пароль. <%: Html.ActionLink(«Регистрация», «Register») %> если у вас нет учетной записи.

 <% using (Html.BeginForm()) { %>
    <%: Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") %>
    <div>
        <fieldset>
            <legend>Account Information</legend>

            <div class="editor-label">
                <%: Html.LabelFor(m => m.UserName) %>
            </div>
            <div class="editor-field">
                <%: Html.TextBoxFor(m => m.UserName) %>
                <%: Html.ValidationMessageFor(m => m.UserName) %>
            </div>

            <div class="editor-label">
                <%: Html.LabelFor(m => m.Password) %>
            </div>
            <div class="editor-field">
                <%: Html.PasswordFor(m => m.Password) %>
                <%: Html.ValidationMessageFor(m => m.Password) %>
            </div>

            <div class="editor-label">
                <%: Html.CheckBoxFor(m => m.RememberMe) %>
                <%: Html.LabelFor(m => m.RememberMe) %>
            </div>

            <p>
                <input type="submit" value="Log On" />
            </p>
        </fieldset>
    </div>
<% } %>
  

`

может кто-нибудь подсказать мне, чего мне не хватает?

Ответ №1:

Не используйте <deny users="?" /> в ASP.NET MVC. Используйте [Authorize] атрибут для оформления контроллеров / действий, которые необходимо защитить. Так, например, если вы хотите защитить все контроллеры, у вас мог бы быть базовый контроллер, который будет украшен этим атрибутом:

 [Authorize]
public abstract class BaseController: Controller
{
    protected BaseController() {}
}
  

а затем на ее основе выводятся другие контроллеры. Очевидно, что LoginController не должен быть производным от этого базового контроллера, поскольку ему необходимо отображать форму входа, не требуя аутентификации.

Комментарии:

1. Мистер Дарин Димитров, большое вам спасибо, все работает идеально 🙂