我正在尝试使用 UserName 或(最好)用户 ID 来确定登录到我的应用程序的特定用户。我的意图是根据用户限制可以上传到我的网站的内容量。每当用户尝试上传文档时,我都想检索他们当前上传的所有文档的计数。作为测试运行,我只是在我的表单中添加了一个标签,以便在编写查询之前尝试识别用户:
// validate user. If they are not authenticated, do not let them upload files
if (!HttpContext.Current.User.Identity.IsAuthenticated || !HttpContext.Current.User.IsInRole("Administrator"))
{
uploadLabel.Visible = false;
user.Text = Membership.GetUser().UserName; // this line should output the username
mapUpload.Visible = false;
uploadButton.Visible = false;
}
我知道身份验证逻辑有效,因为登录时所有其他字段都不可见。此外,Membership.GetUser().UserName 只有在用户 IsAuthenticated 时才有值;否则,我得到一个空指针异常。如果调用了代码,则 Membership.GetUser().UserName 似乎将标签设置为空文本字符串。
是否有其他方法可以获取当前登录用户的信息?如前所述,我的最终目标是能够使用以下信息编写查询:
SELECT COUNT(DocumentID) FROM Documents WHERE UserID=@UserID
提前感谢您的任何帮助。
比克