2017-02-14 10 views
0

私はhereのようなビューでGoogleマップを使用しています。
devの目的のために私はdev APIキーを取得しました。正常に動作します。

Googleマップやその他のAPI用のAPIキーをアプリケーションの秘密に保存したいと考えています。そしてそれをシステムパラメータとして持つこと。
1つの問題を除いて、技術的に問題はありません。ビューにキーを渡す方法は?

実際に私はレイアウトビューのGoogle(地図+キー)から読み込まれたスクリプト(下記)を持っています。私は、APIキーを使って基本クラスからすべてのビューモデルを継承しないようにしたいと思います。Google Mapsに秘密からapiキーを埋め込む方法 - ASP .NET MVC Core

<script async defer 
 
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> 
 
    </script>

APIキーが配備特異的であるので、別のアプリケーション部にそれを抽出するために理にかなっています。このアプリはAzureに配備されているので、秘密はdev envとは異なります。
技術的には、APIキーは秘密ではありませんが、アプリ秘密をこの目的のために完全に使用することができます。

答えて

1

マップ用のAPIキーは、ブラウザのAPIキーであるため、htmlファイルに保存すると問題ありません。まだ残念であれば、アプリケーションにAPIキーを統合するためにthis tutorialに従ってください。

0

ダイランは答えに重要な点を示しています。キーは必然的にHTMLの平文で公開されます。しかし、秘密鍵ではありません。ただし、APIコンソールで許可されたドメインを設定することをおすすめします。他のユーザーも自分のサイトで自分のキーを使用してAPIクォータを盗むことはできません。

つまり、アプリケーション設定のような場所に保存するのは良い考えですが、複数の場所でハードコードする必要はありません。すべてのビューがApp Settingを参照しているだけの場合は、必要に応じて一度変更することができます。

デフォルトでは、アプリケーション設定は内部に設定されているため、ビューには直接アクセスできません(ビューは異なるアセンブリで処理されるため、アプリケーションには技術的に内部ではありません)。プロジェクトプロパティの[アプリケーション設定]画面の上部に頻繁に欠落したドロップダウンがあります。必要に応じて設定をパブリックに切り替えることができます。これにより、ビューに直接アクセスできるようになります。

また、コントローラアクションの設定にアクセスして、モデルのプロパティまたは値を持つViewBagメンバのようなものを設定することもできます。その後、もちろんにアクセスして、を表示することができます。

0

解決策を見つけたばかりですhere

ビューにインスタンスを挿入することです。この場合の構成です。 MVC CoreはDIを完全にサポートしているので、最良のアプローチです。

関連する問題