任何函数(MVC 4)中的User.Identity为null

时间:2015-07-13 06:20:38

标签: c# asp.net-mvc asp.net-mvc-4 model-view-controller

  public List<SelectListItem> AddressTitleList()
        {
            string ID = User.Identity.Name;
            List<SelectListItem> title = new List<SelectListItem>();
            using (LYCHEEntities DB = new LYCHEEntities())
            {
                int ID = Convert.ToInt16(User.Identity.Name.ToString());

                var titles = from g in DB.UserAddresses
                             where g.UserID == ID
                             select new { g.Title, g.UserAddressID };

                foreach (var q in titles)
                {
                    title.Add(new SelectListItem() { Text = q.Title, Value = q.UserAddressID.ToString() });
                }

            }
            return title;
        }

我在任何 ActionResult 中获取User.Identity.Name但在上面的函数中没有,为什么?这有什么替代方案吗?为什么我得到User = Null。请帮助:)

注意:上面的函数/方法不是 ActionResult ,我只有一个控制器。

我不知道它会有所帮助,但HttpContext在上面的函数中也是null ...我也是从View中调用这个函数

 @{ LYCHE.Controllers.HomeController c = new LYCHE.Controllers.HomeController();

            @Html.DropDownListFor(m => m.myTitle,c.AddressTitleList(), new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.myTitle)

1 个答案:

答案 0 :(得分:0)

我认为你正在使用System.Web.Security类,请确保通过在类下面添加

来初始化成员资格

[InitializeSimpleMembership]

示例:

[Authorize]
[InitializeSimpleMembership]
public class MyController : Controller
{
  // here is my class code 
 }