web-dev-qa-db-ja.com

ASP.netMVCシングルページアプリケーションで認証を削除する

Visual Studio 2013でasp.net MVC SPAテンプレートを試してみます。認証ビットは必要ありません。コントローラーページの1つに直接読み込むだけです。

最初のテンプレートからすべての認証情報を削除するにはどうすればよいですか?

14
colobusgem

HomeControllerから[Authorize]アノテーションを削除し、これを削除します。

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

jsからViews\Home\Index.cshtmlアノテーションを削除した後でも、HomeControllerのいずれかがログインページへのリダイレクトを引き起こしているため、[Authorize]から。おそらくそれは必要ありません。ページでこれらのスクリプトが必要な場合は、そのうちの1つを編集する必要があります。

24
Castro Roy

これが私がしたことです。

削除する [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));
9
Matt Burland

これが私がそれを解決した方法です。削除しました

HomeController.csから[Authorize]アノテーションを削除しました(Castro Royの回答からこれを取得しました)。この後も、アプリはログインページにリダイレクトされました。

リダイレクトを解決するには、AccountController.csから[Authorize]アノテーションを削除します

ただし、他のページで使用できるように、認証関連のコードを保持しています。

2
jre

[AllowAnonymous]匿名アクセスを許可する関数の先頭。

1
DaBlue

コントローラから[Authorize]を削除することに加えて、ファイルhome.viewmodel.jsは、ホームページの読み込み時にリダイレクトの問題を引き起こしています。 App_Start/BundleConfig.csで、~/Scripts/app/home.viewmodel.jsScriptBundleから行bundles/appを削除します。

0
zba