2

VisualStudio 2013 プレビューで MVC5 テンプレートを使用しています。これには、私が試したすべてのソーシャル ドメインで機能する素晴らしい Startup.Auth.cs 構成があります。ただし、FaceBook では、返信ホストを指定する必要があります。罰金。したがって、localhost 用に 1 つの Facebook アプリと、デプロイされたアプリ用に 1 つの Facebook アプリがあります。アプリが展開されている場所を認識し、適切なキーを渡すようにしたいのですが、Startup.Auth.cs の場所で問題が発生しています。これを行うためのより良い場所はありますか?

 public void ConfigureAuth(IAppBuilder app)
    {
        // Enable the application to use a cookie to store information for the signed in user
        // and to use a cookie to temporarily store information about a user logging in with a third party login provider
        app.UseSignInCookies();

        // Uncomment the following lines to enable logging in with third party login providers
        //app.UseMicrosoftAccountAuthentication(
        //    clientId: "",
        //    clientSecret: "");

        if (HttpContext.Current.Request.IsLocal)
        {
            app.UseFacebookAuthentication(
               appId: "1234localid",
               appSecret: "123123123123123");
        }
        else
        {
            app.UseFacebookAuthentication(
               appId: "4321deployid",
               appSecret: "123123123123123");
        }

これは常に 2 番目のオプションに解決されるようです。/AppStart/Startup.Auth.cs がいつ解決されるかのように、それが IsLocal であるかどうかを認識していません。

4

1 に答える 1

2

現在のリクエストは、あなたが探している場所ではありません。リクエストは、任意のサーバー上のローカル リクエストである可能性があります。いずれにせよ、アプリケーションの起動時には、見る要求はおそらくまったくありません。

デプロイされた場所に応じて、アプリケーションの動作が異なるようにする必要があります。展開するときにどこに展開されているかがわかります。これは、必要な Facebook 認証の時間を決定するのにおそらく最適な時期です。

ConfigureAuth メソッドは、Owin がアプリケーションの初期化に使用する Startup クラスの一部です。

さまざまなスタートアップ クラスを使用でき、web.config で Owin が使用するものを構成できます。デプロイ先のサーバーでは、次のようなものを使用できます。

<appSettings>  
   <add key="owin:appStartup" value="YourNamespaceHere.ProductionStartup" />
</appSettings>

ローカル マシンでは、これを使用できます。

<appSettings>  
   <add key="owin:appStartup" value="YourNamespaceHere.Startup" />
</appSettings>

ProductionStartup クラスには、デプロイされたシナリオに必要な Facebook コードが含まれています。Startup クラスはテスト用です。

OWIN スタートアップの詳細については、こちらをご覧ください。

于 2013-09-22T17:54:56.453 に答える