用户不包含身份定义

时间:2017-03-25 21:24:41

标签: c# asp.net-mvc asp.net-identity

我正在尝试将字符串简单地分配给服务类中的当前用户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,这不是我想要调用的。

这段确切的代码在另一个类中有效,但不是这个,我不知道为什么。

1 个答案:

答案 0 :(得分:2)

UserController类的属性,这就是为什么你不能从另一个类“看到”它。

您有几个选择:

  1. 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);
    }
    
  2. 您还可以从HttpContext检索用户。 HttpContext班级有a static method to get the current context。例如:

    var user = HttpContext.Current.User;