だから私は従来のモデルの代わりに考えていました:
かみそりコンポーネントに直接サービスを注入できるので、それを実行して、サービスで直接認証を処理してみませんか?
それはセキュリティの問題を引き起こしますか?
コードがブラウザを介してデバッグされた場合、接続文字列を抽出することは可能ですか?
Razorコンポーネントには、クライアントブラウザ(Blazor)とサーバー(以前はサーバー側Blazorと呼ばれていました)の2つの実行モードがあります。アプリがクライアントブラウザーでホストされている場合、現在、データベースにはAJAXを介してのみアクセスできます。つまり、HttpClientです。これは、データベースに(直接またはサービスやリポジトリなどを介して)アクセスし、必要なデータを返すことができるWebAPIプロジェクトを作成する必要があります。
ご覧のとおり、フロントエンドのBlazorアプリはクライアント(クライアントのC#)で実行されていますが、データベースはサーバー上にあるため、データベースに直接アクセスすることはできません。認証はサーバーでのみ使用でき、使用する必要があり、AJAX呼び出しが必要です。
アプリがサーバーでホストされている場合(ASP.NET Coreアプリケーションのみ)、データベースにアクセスするためのメソッドを使用できます。データベースにクエリを実行し、呼び出し元のコンポーネントアプリにデータを直接返すサービスを作成します。これが可能なのは、ComponentsAppプロジェクトとホスティングASP.NETCoreアプリケーションがサーバー上にあるためです。ここではWebAPIは必要ありません...ただし、この場合でもデータを提供するWebAPIを作成できます。認証と承認は、従来のASP.NET CoreWebアプリケーションと同じである必要があります。
ASP.NETチームは、クライアント側のBlazorからサーバー側のBlazorへの切り替えは、いくつかのコード行を変更することによって行う必要があると述べています。これは部分的に真実であり、誤解を招く可能性があります。使用する予定の実行モードに基づいて、最初からアプリを設計する必要があります。個人的には、両方の実行モデルでWebAPIを使用することをお勧めします。そのため、あるモードから別のモードへの切り替えは、ASP.NETチームが言うのと同じくらい簡単です。この場合も、データベースに直接アクセスして呼び出し元のコンポーネントアプリにデータを返すサービスを作成する場合、データベースはサーバー上にあり、サービスはクライアント上で「実行中」であるため、このコードをブラウザー実行モードで実行することはできません。したがって、アプリケーションを設計し、それをどこでどのように使用するかを事前に知ることは非常に重要です。私'
お役に立てれば...
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加