我正在一个使用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)。
答案 0 :(得分:0)
假设您没有使用Asp.Net核心。
有扩展方法GetUserId,可以为您提供帮助。
由于它是扩展方法,因此您需要添加一条using语句。
using Microsoft.AspNet.Identity
strCurrentUserId = User.Identity.GetUserId()
此命名空间可在Microsoft.AspNet.Identity.IdentityExtensions
希望这会有所帮助。