gpt4 book ai didi

c# - .net C#,保护每种方法的最佳实践是什么?

转载 作者:行者123 更新时间:2023-11-30 15:35:37 25 4
gpt4 key购买 nike

我有一个 Web 项目,它有一个业务层来处理一些数据操作。我想通过在执行方法之前检查是否存在事件的未结束有效 Session 来保护部分或所有方法。

我首先想到在类上使用 Attribute 但我无法正确运行它。由于该类是一个普通类,而不是从 System.Web.Page 派生的。当调用所需的 BL 实例时,属性类永远不会运行。此外,某些方法可能不需要有效 session ,因此整个类可能不需要完全安全。而且,在方法的每个开头添加一行来检查 session 听起来不太有希望。

如果你问我为什么需要通过方法来保护,我可以这样解释:

  • 这是一个网络项目
  • 人们可能会从填充它开始,但在那一刻永远不会得到它
  • 假设该屏幕等待大约 30 分钟
  • session 已经结束
  • 用户回到电脑前,点击保存按钮,但过程并未完成

保存操作很容易成为DELETE 操作或SELECT

由于表单和东西的类型很多,我有 BL.ItemManagerBL.VideoManagerBL.ServiceManager 等等... 所以,在这些类中有很多保存、删除和选择方法。

因此,有没有一种巧妙的方法通过在运行进程之前检查 session 来保护某些方法

最佳答案

您可以使用面向方面的方法; PostSharp可能是一种选择。

您需要做的就是使用 PostSharp 创建一个属性,在方法调用之前注入(inject)代码以检查 session 是否存在。类似的东西;

[SessionAlive]
public void SomeMethod()

或者您可以只使用 Global.asax 文件中的 Session_End 方法,或者您可以只使用一些 javascript 代码来 force redirection to login page .

关于c# - .net C#,保护每种方法的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14683320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com