Создать, Невозможно войти в систему, идентификатор пользователя и имя - PullRequest
0 голосов
/ 12 сентября 2018

В настоящее время я использую .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);

}

Ответы [ 3 ]

0 голосов
/ 12 сентября 2018

Я считаю, что ваша проблема просто в том, что ваш "Пользователь" не вошел в систему.

Вы уверены, что у вас есть метод аутентификации? (Обычно это форма.)

0 голосов
/ 12 сентября 2018

Обратите внимание, что User является членом класса Page.

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;
0 голосов
/ 12 сентября 2018

Причиной может быть то, что для приложения включена анонимная аутентификация. Разрешить Windows (если она находится в домене) и отключить анонимную аутентификацию.

В Visual Studio откройте свойства проекта

enter image description here

В IIS

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...