デフォルトの asp.net 認証で特定のパスへのアクセスを防止したい場合は、次のようにします。
<location path="routes.axd">
<system.web>
<authorization>
<allow roles="Agent"/>
<deny users="*"/>
</authorization>
</system.web>
ServiceStack をどのように使用できますか?
デフォルトの asp.net 認証で特定のパスへのアクセスを防止したい場合は、次のようにします。
<location path="routes.axd">
<system.web>
<authorization>
<allow roles="Agent"/>
<deny users="*"/>
</authorization>
</system.web>
ServiceStack をどのように使用できますか?
ServiceStack で /paths を保護する構成はありません。
[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);
}
});