1
我想使用ServiceStack.net,所以我的第一个服务已经实现了一个CustomAccountAuthProvider,它的TryAuthenticate方法现在简单地返回True。ServiceStack.net与自定义CredentialsAuthProvider返回“未经授权”?
我遇到的问题是,客户端首先调用(和成功)
var rc = new JsonServiceClient("http://localhost:1337/");
var ar = rc.Send<AuthResponse>(new Auth
{
provider = CredentialsAuthProvider.Name,
UserName = "user",
Password = "[email protected]",
RememberMe = true
});
其次:
var newJob = rc.Post<BladeJob>("/jobs", new BladeJob { Name = "TestJob" }); //todo.Id =
仅返回 “未授权”(异常)。
的服务很简单:
[Authenticate()]
public class BladesService : RestServiceBase<BladeJob>
{
public JobRepository Repository { get; set; }
public override object OnPut(BladeJob request)
{
return Repository.Store(request);
}
public override object OnPost(BladeJob job)
{
return Repository.Store(job);
}
public override object OnGet(BladeJob request)
{
IAuthSession session = this.GetSession();
if (request.JobID != default(ulong))
return Repository.GetByID(request.JobID);
return Repository.GetAll();
}
}
我把一个断点在TryAuthenticate和它击中它就好了,我究竟做错了什么?
整个主机配置是在这里:
public override void Configure(Funq.Container container)
{
//Register Web Service dependencies
container.Register(new JobRepository());
//Register all Authentication methods you want to enable for this web app.
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new AuthProvider[] {
new CustomCredentialsAuthProvider() //HTML Form post of UserName/Password credentials
}
));
//Register user-defined REST-ful routes
Routes
.Add<BladeJob>("/jobs")
.Add<BladeJob>("/jobs/{JobID}");