【发布时间】:2012-05-29 18:37:56
【问题描述】:
我的应用程序中有 2 个 RAZOR 索引表。 1 Form 在一个数据库“LocalDB”中创建记录,并在另一个数据库“Core DB”中更新相同的记录。另一个表单将记录从“CoreDB”同步到“LocalDB”。必须这样做,因为还有其他应用程序在“CoreDB”中创建记录。 在我的本地数据库中,我将审计跟踪保留 4 列。 CreateAt、CreatedBy、ModifiedAt、ModifiedBy。这些列向我提供了有关谁创建/修改了记录以及时间的信息。
我有一个带有静态函数的简单静态类,我让当前用户以
身份登录到我的 Web 应用程序currentUser = HttpContext.Current.User.Identity.Name;
这在我使用创建记录的表格 1 时有效。 当我使用 Form 2 时,尝试将记录从 COREDB 同步到 LocalDB,同一行会引发空异常。
你能告诉我为什么会这样吗?
谢谢!
【问题讨论】:
-
在查询
Identity对象之前,您真的应该检查HttpContext.Current.User.IsAuthenticated:) -
HttpContext.User没有IsAuthenticated方法,但HttpContext.User.Identity.IsAuthenticated确实存在,HttpContext对象上没有.Current -
如果将 System.Web 添加为头文件,则可以使用 HTTPContext.Current 获取当前登录的用户。这就是我一直在使用的方式。我不能使用 HTTPContext.User 因为 VS Intellicense 在我的静态类中没有该选项。这不在控制器中。这是我的头类之一。
-
这太奇怪了!在我有
using System.Web;的任何课程中,我都没有得到HttpContext.Current,我的环境显然有问题:-)