我从c#客户端登录我的服务,如下所示:
serviceClient.Send<ServiceStack.ServiceInterface.Auth.AuthResponse>(
new ServiceStack.ServiceInterface.Auth.Auth() {
UserName = "xxx",
Password = "yyy" }
);
我现在想使用Auth类中的一个未使用的字符串来传递一些额外的信息(比如programid)。我正在使用我自己的子类CredentialsAuthProvider。两个问题:
您是否建议使用Auth类中的任何“额外”属性来填充我的programid?我正在考虑使用“状态”,如果我在那里放一个字符串,会不会弄乱任何东西?
我的CredentialsAuthProvider的TryAuthenticate覆盖中是否有一种方法可以访问发送给我的Auth类实例(因此我可以访问阻塞在State属性中的programid)。
< / LI> 醇>谢谢。
答案 0 :(得分:0)
回答了我的一半问题。
不确定是否有任何属性比其他任何属性更好,但我正在使用“State”来填充一些额外的数据。既然多个最终用户程序正在访问同一个服务,那么在State属性中发送程序ID可以让我记录尝试登录服务的程序以及用户。
如果要通过覆盖CredentialsAuthProvider进行身份验证,则可以覆盖Authenticate方法以获取对从用户传入的Authenticate对象的访问权限。从那里,您可以阅读State属性(或任何其他属性)。