0

我正在尝试使用 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

提前感谢您的任何帮助。

比克

4

2 回答 2

1

无需使用MembershipUser事件来获取当前登录的用户我们有另一种简单的方法来获取当前登录username您只需在您的页面中定义这样

string userName = Page.User.Identity.Name;
于 2013-02-19T04:08:07.450 回答
0

不能换吗

user.Text = Membership.GetUser().UserName;

user.Text= User.Identity.Name

于 2013-02-19T04:07:29.957 回答