Вызовите User.Identity.GetUserId() из Помощников с ASP.NET MVC

Я новичок в ASP.NET MVC,

Я переместил метод HTTP POST из моего контроллера в помощники, и я не могу вызвать User.Identity.GetUserId() от System.Security.Principal.IIdentity библиотека.

Почему я не могу использовать эту библиотеку от помощников? Спасибо

1 ответ

Решение

User объект, который вы получаете из контроллера с помощью User.Identity.GetUserId() имеет тип HttpContext.User,

Вы можете получить текущий HttpContext используя HttpContext.Current который находится внутри System.Web,

Вам также понадобится оператор using для метода Extension.

using Microsoft.AspNet.Identity;
using System.Web;

public class MyClass()
{
    public void MyMethod()
    {
        // Get the current context
        var httpContext = HttpContext.Current;

        // Get the user id
        var userId = httpContext.User.Identity.GetUserId();
    }
}

Я лично рекомендовал бы передать это значение в качестве параметра из вашего контроллера, если вы извлекаете его в свои вспомогательные методы, потому что это делает его более понятным, если оно зависит от него?

Вам нужно будет получить это значение из вашего контроллера и передать его в качестве параметра, если вы переместите вспомогательный метод на уровень обслуживания и т. Д.

Другие вопросы по тегам