在我的asp.net-4.5解决方案中。我有User.Username变量,该变量设置正确,但不是静态的。我需要在静态方法中使用此变量,该方法通过Ajax在下面的.aspx页中通过AJAX调用:
[WebMethod]
public static bool DeleteFromDB (string programId)
{
...
Log.Write("deleted by: " + User.Username)
}
我的问题是我不能在那里使用User.Username,因为它是一个非静态变量。我无法创建一个静态变量并将其值设置为static一个,或以某种方式将非static转换为static。试图使用hiddenField和Label,但也无法从静态函数中获取它们的值。
请注意,User.Username
不等于System.Security.Principal.WindowsIdentity.GetCurrent().Name;
User.Username是用户登录时使用的电子邮件地址。
成功的最简单方法是什么?谢谢。
答案 0 :(得分:0)
您必须确保当用户登录时,将唯一标识他/她的数据存储为会话数据(id,用户名或电子邮件可以是该数据,但id是首选)。如果尚未完成,这是第一件事。
您应该能够通过会话数据来获取用户,如果将其获取到变量中,我们将其称为myUser
,那么您将能够读取其Username
,最好通过getter读取。