Страница входа приложения ASP.Net MVC 2 в качестве стартовой страницы - PullRequest
0 голосов
/ 12 апреля 2011

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

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

`<% @ Page Language =" C # "MasterPageFile =" ~ / Views / Shared / Site.Master "Inherits =" System.Web.Mvc.ViewPage "%>

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

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

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

<% 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 Ответ

2 голосов
/ 12 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...