Подтвердить что ты не робот

Удалить аутентификацию в одностраничном приложении ASP.net MVC

Я пытаюсь играть с шаблоном asp.net MVC SPA в visual studio 2013, мне не нужны какие-либо биты проверки подлинности, мне просто нужно загрузить непосредственно на одну из страниц контроллеров.

Как избавиться от всего материала аутентификации из исходного шаблона?

4b9b3361

Ответ 1

Удалите аннотацию [Authorize] от HomeController и удалите это:

@section Scripts{
   @Scripts.Render("~/bundles/knockout")
   @Scripts.Render("~/bundles/app")
}

из Views\Home\Index.cshtml, потому что один из них js вызывает перенаправление на страницу входа даже после удаления аннотации [Authorize] от HomeController и, вероятно, вам это не нужно. Если вам нужны эти сценарии на вашей странице, вам необходимо отредактировать один из них.

Ответ 2

Вот что я сделал.

Удалите атрибут [Authorize] с домашнего контроллера.

Затем в app.viewmodel.js вы увидите следующее:

self[options.bindingMemberName] = ko.computed(function () {
    if (!dataModel.getAccessToken()) {
        // The following code looks for a fragment in the URL to get the access token which will be
        // used to call the protected Web API resource
        var fragment = common.getFragment();

        if (fragment.access_token) {
            // returning with access token, restore old hash, or at least hide token
            window.location.hash = fragment.state || '';
            dataModel.setAccessToken(fragment.access_token);
        } else {
            // no token - so bounce to Authorize endpoint in AccountController to sign in or register
            window.location = "/Account/Authorize?client_id=web&response_type=token&state=" + encodeURIComponent(window.location.hash);
        }
    }

    return self.Views[options.name];
});

Это раздел, который перенаправит вас на экран входа в систему, поэтому закомментируйте или удалите блок if. Если вы хотите, вы также можете перейти в app.datamodel.js и удалить или прокомментировать self.getAccessToken.

Кроме того, в WebApiConfig.cs вам, вероятно, захочется удалить/прокомментировать следующие строки:

// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

Ответ 3

Вот как я это решил. Я просто удалил

Удалена аннотация [Авторизовать] из HomeController.cs(получена из ответа Кастро Роя). Даже после этого приложение перенаправлено на страницу входа.

Чтобы устранить перенаправление, удалите аннотацию [Авторизовать] из AccountController.cs

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

Ответ 4

В дополнение к удалению [Authorize] из контроллеров файл home.viewmodel.js вызывает проблему перенаправления при загрузке главной страницы. В App_Start/BundleConfig.cs удалите строку ~/Scripts/app/home.viewmodel.js из bundles/app ScriptBundle.

Ответ 5

Поместите [AllowAnonymous] в начало функции, для которой вы хотите разрешить анонимный доступ.