0

我们编写的每个存储过程都必须将 clientip、serverip、windows 用户名等传递给它。

问题是我如何有效地将这些传递给 DAL?

4

3 回答 3

1

我假设这是 ASP.NET 中的 Web 应用程序。如果是这种情况,您可以通过以下静态实例在 Web 应用程序之外的 Web 请求上下文中访问所有这些内容:

System.Web.HttpContext.Current

如果您需要的一切都是您通常在页面级别默认可用的请求、响应和用户对象中拥有的标准东西,那么这应该就是您所需要的。如果您需要为您的网络应用程序定制的信息,那么 Ben 的答案(上图)应该可以工作。

于 2009-04-06T19:32:35.317 回答
0

您应该可以在 System.Environment 类或您自己的某种线程主体中访问所有上述数据。您的 DAL 可以轻松地从这两个或任何一个来源中获取信息。

于 2009-04-06T19:26:38.920 回答
0

创建一个类来保存这些数据,一个工厂来构建它和辅助方法来使用它。

IUserContext
{
int param1 {get;set;}
int param2 {get;set;}

SqlParameter[] GetSqlParameters();
}

UserContext : IUserContext{}

UserContextFactory
{
    internal IUserContext IUserContextFromRequest(){}
}

祝你好运

于 2009-04-06T19:27:27.297 回答