使用 ASP.NET MVC 从助手调用 User.Identity.GetUserId()
Call User.Identity.GetUserId() from Helpers with ASP.NET MVC
我是 ASP.NET MVC 新手,
我将一个 HTTP POST 方法从我的控制器移到了助手,但我无法从 System.Security.Principal.IIdentity
库调用 User.Identity.GetUserId()
。
为什么我不能使用助手提供的这个库?谢谢
您使用 User.Identity.GetUserId()
从控制器中获取的 User
对象的类型为 HttpContext.User
。
您可以使用位于 System.Web
.
中的 HttpContext.Current
获取当前的 HttpContext
您还需要扩展方法的 using 语句。
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();
}
}
如果您在辅助方法中检索该值,我个人建议将该值作为参数从您的控制器传入,因为它更清楚地表明它依赖于它?
如果将辅助方法移动到服务层等,则需要从控制器获取此值并将其作为参数传递。
我是 ASP.NET MVC 新手,
我将一个 HTTP POST 方法从我的控制器移到了助手,但我无法从 System.Security.Principal.IIdentity
库调用 User.Identity.GetUserId()
。
为什么我不能使用助手提供的这个库?谢谢
您使用 User.Identity.GetUserId()
从控制器中获取的 User
对象的类型为 HttpContext.User
。
您可以使用位于 System.Web
.
HttpContext.Current
获取当前的 HttpContext
您还需要扩展方法的 using 语句。
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();
}
}
如果您在辅助方法中检索该值,我个人建议将该值作为参数从您的控制器传入,因为它更清楚地表明它依赖于它?
如果将辅助方法移动到服务层等,则需要从控制器获取此值并将其作为参数传递。