1

デフォルトの asp.net 認証で特定のパスへのアクセスを防止したい場合は、次のようにします。

<location path="routes.axd">
<system.web>
  <authorization>
    <allow roles="Agent"/>
    <deny users="*"/>
  </authorization>
</system.web>

ServiceStack をどのように使用できますか?

4

1 に答える 1

1

ServiceStack で /paths を保護する構成はありません。

[Authenticate] 属性の使用

[Authenticate]次のいずれかのアクションに属性を追加することで、サービスを保護できます。

class MyService : Service {
    [Authenticate] 
    public object Get(Protected request) { ... }
}

リクエスト DTO

[Authenticate] 
class Protected { ... }

またはサービスの実装

[Authenticate] 
class MyService : Service {
    public object Get(Protected request) { ... }
}

または、基本クラスから継承することによって

[Authenticate] 
class MyServiceBase : Service { ... }


class MyService : MyServiceBase {
    public object Get(Protected request) { ... }
}

グローバル リクエスト フィルタの使用

それ以外の場合は、グローバル リクエスト フィルターを使用して、すべてのリクエストを別の方法で制限したい場合、たとえば次のようにします。

appHost.RequestFilters.Add((httpReq, httpResp, requestDto) =>
{
    if (IsAProtectedPath(httpReq.PathInfo)) {
       new AuthenticateAttribute()
         .Execute(httpReq, httpResp, requestDto);
    }
});
于 2012-10-10T23:56:18.720 に答える