一部の自動クエリで認証を強制したいと考えています。
[Authenticate]
public class BusinessEntitiesService : QueryDb<DataModel.dbo.BusinessEntity>
{
}
これが私の問題です。上記のクラスは私の ServiceModel プロジェクトにあります... [Authenticate] 属性を追加するには、ServiceStack.dll への参照を追加する必要があります。 ServiceModel のインターフェイス)。上記のクラスを ServiceInterfaces に追加することはできません。これは、クライアントを使用するすべての場所でそれを参照する必要があるためです。
私も GlobalRequestFilter を使用してみました...しかし、それは AdminFeature プラグインとうまくいかないようです:
private bool IsAProtectedPath(string path)
{
return !path.StartsWith("/auth") && !path.StartsWith("/autoquery");
}
GlobalRequestFilters.Add((httpReq, httpResp, requestDto) =>
{
if(IsAProtectedPath(httpReq.PathInfo))
new AuthenticateAttribute().Execute(httpReq, httpResp, requestDto);
});
これをどのように処理するのが最善かよくわかりません。