Вызовите 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();
}
}
Я лично рекомендовал бы передать это значение в качестве параметра из вашего контроллера, если вы извлекаете его в свои вспомогательные методы, потому что это делает его более понятным, если оно зависит от него?
Вам нужно будет получить это значение из вашего контроллера и передать его в качестве параметра, если вы переместите вспомогательный метод на уровень обслуживания и т. Д.