我正在尝试将字符串简单地分配给服务类中的当前用户ID,如下所示:
strCurrentUserId = User.Identity.GetUserId();
//My namespace references
using HelpDesk.DAL;
using HelpDesk.Models;
using HelpDesk.ViewModels;
using System;
using Microsoft.AspNet.Identity;
using System.Security.Principal;
通过User.Identity.GetUserId
类访问System.Security.Principal
。
Visual Studio一直在想我正在尝试访问我在项目中拥有的模型类型User
,这不是我想要调用的。
这段确切的代码在另一个类中有效,但不是这个,我不知道为什么。
答案 0 :(得分:2)
User
是Controller
类的属性,这就是为什么你不能从另一个类“看到”它。
您有几个选择:
将User
值传递给您的其他类,例如:
public class MyClass
{
public void SomeMethod(System.Security.Principal.IPrincipal user)
{
//do something with 'user'
}
}
public ActionResult SomeAction()
{
var myClass = new MyClass();
myClass.SomeMethod(User);
}
您还可以从HttpContext
检索用户。 HttpContext
班级有a static method to get the current context。例如:
var user = HttpContext.Current.User;