簡體   English   中英

任何功能(MVC 4)中的User.Identity為null

[英]User.Identity is null in any Function (MVC 4)

  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,但在上述函數中卻沒有,為什么? 有沒有其他選擇? 為什么我得到用戶=空。 請幫助:)

注意:上面的函數/方法不是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)

我認為您正在使用System.Web.Security類,請通過在類上添加以下內容來確保初始化成員身份

[InitializeSimpleMembership]

例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM