Удалить аутентификацию в одностраничном приложении ASP.net MVC
Я пытаюсь играть с шаблоном asp.net MVC SPA в visual studio 2013, мне не нужны какие-либо биты проверки подлинности, мне просто нужно загрузить непосредственно на одну из страниц контроллеров.
Как избавиться от всего материала аутентификации из исходного шаблона?
Ответы
Ответ 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]
в начало функции, для которой вы хотите разрешить анонимный доступ.