Visual Studio 2013でasp.net MVC SPAテンプレートを試してみます。認証ビットは必要ありません。コントローラーページの1つに直接読み込むだけです。
最初のテンプレートからすべての認証情報を削除するにはどうすればよいですか?
HomeController
から[Authorize]
アノテーションを削除し、これを削除します。
@section Scripts{
@Scripts.Render("~/bundles/knockout")
@Scripts.Render("~/bundles/app")
}
js
からViews\Home\Index.cshtml
アノテーションを削除した後でも、HomeController
のいずれかがログインページへのリダイレクトを引き起こしているため、[Authorize]
から。おそらくそれは必要ありません。ページでこれらのスクリプトが必要な場合は、そのうちの1つを編集する必要があります。
これが私がしたことです。
削除する [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));
これが私がそれを解決した方法です。削除しました
HomeController.csから[Authorize]アノテーションを削除しました(Castro Royの回答からこれを取得しました)。この後も、アプリはログインページにリダイレクトされました。
リダイレクトを解決するには、AccountController.csから[Authorize]アノテーションを削除します
ただし、他のページで使用できるように、認証関連のコードを保持しています。
[AllowAnonymous]
匿名アクセスを許可する関数の先頭。
コントローラから[Authorize]
を削除することに加えて、ファイルhome.viewmodel.jsは、ホームページの読み込み時にリダイレクトの問題を引き起こしています。 App_Start/BundleConfig.cs
で、~/Scripts/app/home.viewmodel.js
ScriptBundleから行bundles/app
を削除します。