我是新来的,还是初学者。我正在帮助我工作的公司设计新产品,自从开始以来,我读了很多,但还远远不够。
我决定使用Mediator Pattern(与Mediatr一起)来调用我的应用程序层。 太酷了,我有时会知道如何使用它,但有时我会感到困惑。
例如,当我们在新产品上发布文档时,我们使用RequestHandler
来完成所有工作并检查其所需的所有规则,这很好并且可以像吸引人一样工作,但是,当我想要快速数据,看起来太简单了。
作为一个例子,每当用户对我的Web应用程序执行任何操作时,我都必须检查他是否仍在登录。我们每个用户只有一次登录,因此,如果同一用户在其他任何地方连接,则旧会话将过期。我们通过保存在数据库中来做到这一点。
在我应用程序的每个操作中,我都会检查并检查会话密钥是否与下面相同。
var sessionKey = bibliotecaCookie.Value;
var mediator = controller.GetMediator();
var isUserSessionKeyValidRequest = new IsUserSessionKeyValidRequest()
{
sessionKey = sessionKey
};
var isValidSession = mediator.Send(isUserSessionKeyValidRequest).Result;
if (!isValidSession)
throw new UnauthorizedAccessException();
因此,我有一个RequestHandler
(一个处理程序和一个返回布尔值的请求)只是为了检查用户会话是否正常。
当处理程序捕获到该请求时,它将进入数据库并执行一个简单的规则,即“所传递的会话与存储的会话密钥相同吗?”。
对吗?这是正确的方法吗?我明白吗?
先谢谢大家