当我们想阻止使用默认 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);
}
});