从TryAuthenticate访问Auth()对象

时间:2013-12-10 14:00:57

标签: c# authentication servicestack

我从c#客户端登录我的服务,如下所示:

serviceClient.Send<ServiceStack.ServiceInterface.Auth.AuthResponse>(
     new ServiceStack.ServiceInterface.Auth.Auth() { 
         UserName = "xxx", 
         Password = "yyy" }
 );

我现在想使用Auth类中的一个未使用的字符串来传递一些额外的信息(比如programid)。我正在使用我自己的子类CredentialsAuthProvider。两个问题:

  1. 您是否建议使用Auth类中的任何“额外”属性来填充我的programid?我正在考虑使用“状态”,如果我在那里放一个字符串,会不会弄乱任何东西?

  2. 我的CredentialsAuthProvider的TryAuthenticate覆盖中是否有一种方法可以访问发送给我的Auth类实例(因此我可以访问阻塞在State属性中的programid)。

    < / LI>

    谢谢。

1 个答案:

答案 0 :(得分:0)

回答了我的一半问题。

  1. 不确定是否有任何属性比其他任何属性更好,但我正在使用“State”来填充一些额外的数据。既然多个最终用户程序正在访问同一个服务,那么在State属性中发送程序ID可以让我记录尝试登录服务的程序以及用户。

  2. 如果要通过覆盖CredentialsAuthProvider进行身份验证,则可以覆盖Authenticate方法以获取对从用户传入的Authenticate对象的访问权限。从那里,您可以阅读State属性(或任何其他属性)。