如何使用asp.net身份获取用户ID

时间:2019-03-12 21:50:34

标签: c# asp.net visual-studio asp.net-identity

我正在一个使用Identity来存储用户信息的项目。

所以我有一个表格,可以让我提交数据并将信息保存到数据库中。但是我可以选择允许用户匿名。我想知道如何获取用户的ID,以便可以在以下代码的开头将其应用到if-else语句中。

 protected void AddPost(object sender, EventArgs e)
        {


            var User = System.Web.HttpContext.Current.User.Identity.;
            if (Convert.ToBoolean(Int32.Parse(inputAnonymous.SelectedValue)))
            {
                User = "";
            }

            Post newPost = new Post()
            {
                postTitle = inputTitle.Text,
                postBody = inputBody.Text,
                postDescription = inputDescription.Text,
                postCategory = inputCategory.SelectedValue,
                postAnonymous = Convert.ToBoolean(Int32.Parse(inputAnonymous.SelectedValue)),
                Id = User
            };

            using (var _dbContext = new ApplicationDbContext())
            {
                _dbContext.Posts.Add(newPost);
                _dbContext.SaveChanges();
            }
        }

我知道如果我使用

 var User = System.Web.HttpContext.Current.User.Identity.Name;

然后它将获取用户名(在此上下文中为电子邮件,而不是用户ID)。

1 个答案:

答案 0 :(得分:0)

假设您没有使用Asp.Net核心。

有扩展方法GetUserId,可以为您提供帮助。

由于它是扩展方法,因此您需要添加一条using语句。

using Microsoft.AspNet.Identity

strCurrentUserId = User.Identity.GetUserId()

此命名空间可在Microsoft.AspNet.Identity.IdentityExtensions

中找到

希望这会有所帮助。