Membership.GetUser()C#.NET

时间:2013-02-19 04:01:59

标签: c# .net authentication

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

提前感谢您的任何帮助。

比克

2 个答案:

答案 0 :(得分:1)

无需使用 MembershipUser 事件来获取当前登录的用户,我们还有另一种简单的方式来获取当前登录 { {1}} 您只需在页面中定义

username

答案 1 :(得分:0)

你不能替换

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

user.Text= User.Identity.Name