-1

我的应用程序中有 2 个 RAZOR 索引表。1 Form 在一个数据库“LocalDB”中创建记录,并在另一个数据库“Core DB”中更新相同的记录。另一个表单将记录从“CoreDB”同步到“LocalDB”。必须这样做,因为还有其他应用程序在“CoreDB”中创建记录。在我的本地数据库中,我将审计跟踪保留 4 列。CreateAt、CreatedBy、ModifiedAt、ModifiedBy。这些列为我提供了有关谁创建/修改了记录以及何时创建的信息。

我有一个带有静态函数的简单静态类,我让当前用户登录到我的 Web 应用程序

currentUser = HttpContext.Current.User.Identity.Name;     

这在我使用创建记录的表格 1 时有效。当我使用表格 2 时,尝试将记录从 COREDB 同步到 LocalDB,同一行会引发空异常。

你能告诉我为什么会这样吗?

谢谢!

4

2 回答 2

2

HttpContext.Current != null && HttpContext.Current.User.Identity != null && HttpContext.Current.User.Identity.IsAuthenticated在寻找之前检查HttpContext.Current.User.Identity.Name

于 2012-05-29T19:43:48.687 回答
0

你没有在你的问题中解释你在哪里以及如何调用包含这一行的方法。您谈到了同步一些数据库。我非常怀疑您正在尝试HttpContext.Current在后台线程中使用,这显然是不可能的,因为后台线程中没有任何 HttpContext 。

如果不是这种情况,请确保用户在访问其名称之前已通过身份验证:

string currentUser = "";
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
    currentUser = HttpContext.Current.User.Identity.Name;
}
于 2012-05-30T06:13:17.423 回答