首页 > 解决方案 > 创建,无法登录用户 ID 和名称

问题描述

我目前正在使用 .NET Framework 4.5.1,我不明白为什么“名称”似乎总是不存在。我努力了

using Microsoft.AspNet.Identity 
User.Identity.GetUserName()

我仍然收到以下编译时错误,说明User不包含在当前上下文中?

这是我的创建代码

public void CreateRecord(SampleDataModel Rec)
{

    DefaultConnection ent = new DefaultConnection();

    SampleData dbRec = new SampleData();

    dbRec.CreatedBy = User.Identity.GetUserName(); // <---- CAUSING ERROR

    dbRec.CurrentOwner = Rec.CurrentOwner;
    dbRec.DateOfBirth = Rec.DateOfBirth;
    ent.SampleData.Add(dbRec);
    ent.SaveChanges();
    SampleData DummyObject = new SampleData();

    CreateAuditTrail(AuditActionType.Create, dbRec.ID, DummyObject, dbRec);

}

标签: c#asp.netasp.net-mvc

解决方案


请注意,这UserPage该类的成员。

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.page.user

因此,如果您的班级,您正在尝试获取User成员不是从Page您那里获得的,您无法通过简单地编写来访问它User

例如,如果它看起来不像这样:

public partial class _Default : Page

在这种情况下,您将不得不使用更“直接”的方法并使用

HttpContext.Current.User而不仅仅是User

https://docs.microsoft.com/en-us/dotnet/api/system.web.httpcontext.user

所以改变你的线路

dbRec.CreatedBy = User.Identity.GetUserName();

dbRec.CreatedBy = HttpContext.Current.User.Identity.GetUserName();

并添加命名空间

using System.Web;

推荐阅读