2

我正在尝试强制每个请求进行身份验证,但是通过添加自动添加AuthFeatureSessionFeaturegets,这似乎缓存了身份验证结果(我没有收到IUserAuthRepository.TryAuthenticate来自同一客户端的请求的多个调用)。

我已经尝试注释掉SessionFeature正在添加的内容,AuthFeature但它似乎没有效果,会话仍然创建?此外,在AuthFeature构造函数中,我为会话工厂传递了 null,仍然创建了一个会话。我希望这要么不创建会话,要么抛出异常?无论如何,我会继续探索这个领域,但是为了在这个项目上取得进展,我只需要知道如何使用内置的身份验证提供程序进行每个请求的身份验证?

4

1 回答 1

1

在我们的项目中,我们采用简单的方法。

在下面创建一些东西。

基本身份验证类:

 public class TagAuth
    {
        /// <remarks/>
        public string agent { get; set; }

        /// <remarks/>
        public string sign { get; set; }

        /// <remarks/>
        public string ts { get; set; }

        /// <remarks/>
        public int seed { get; set; }
    }

所有请求的基类:

 public class BaseRequest
    {
        /// <remarks/>
        public TagAuth auth { get; set; }
    }

对模型中的所有请求使用 BaseRequest 类:

public class Cancel : BaseRequest
    {

        public long bid { get; set; }

    }

实现服务接口:

公共类 CancelService : ServiceBase {

protected override object Run(Cancel request)
{
    SecurityManager.CheckAuthorization(request.auth); 
    return CancelRouter.Route(request);
}

}

但是本机支持每个请求的身份验证对我们来说也很有趣。

于 2012-11-29T21:12:57.513 回答