在我的asp.net-4.5解决方案中。我有User.Username变量,它设置正确,但它是非静态的。我需要在一个静态方法中使用这个变量,该方法在我的.aspx页面中通过AJAX调用,如下所示:
[WebMethod]
public static bool DeleteFromDB (string programId)
{
...
Log.Write("deleted by: " + User.Username)
}我的问题是我不能在那里使用User.Username,因为它是一个非静态变量。我无法创建静态变量并将其值设置为静态变量,也无法以某种方式将非静态变量转换为静态变量。尝试使用hiddenField和标签,但也无法从静态函数中获取它们的值。
请注意,User.Username不等于System.Security.Principal.WindowsIdentity.GetCurrent().Name;
User.Username是用户登录时使用的电子邮件地址。
成功的最简单方法是什么?谢谢。
发布于 2019-02-06 23:21:23
您必须确保当用户登录时,唯一标识他/她的数据被存储为会话数据(id、用户名或电子邮件可以是该数据,但id是首选)。这是第一件要做的事情,如果还没有完成的话。
您应该能够通过会话数据获取用户,如果您将其放入一个变量中,让我们称其为myUser,那么您将能够读取它的Username,最好是通过getter。
https://stackoverflow.com/questions/54556845
复制相似问题