如何获得当前用户登录到我的ASP的名称.NET MVC网站

本文关键字:NET 网站 MVC ASP 我的 何获得 用户 登录 | 更新日期: 2023-09-27 18:11:09

所以我在一个Activity Input页面上工作,用户根据我目前作为实习生工作的公司的项目输入他的时间。

这里的catch虽然,到目前为止,项目名称的显示(当然取决于用户)只工作,当我直接把我的名字-所以我想知道是否有一种方法来存储当前登录的用户的名字?(在下面的源代码中,"kade"代表我的名字,这就是我想要替换的)

IEnumerable<SelectListItem> cb_listprojects = pr.ListProject("kade", strYear, strMonth);  // here "kade" represents my name, same for the rest of the source code
        List<IEnumerable<SelectListItem>> ddlists = new List<IEnumerable<SelectListItem>>();
        foreach (string s in ViewBag.ListDaysOfMonth)
            ddlists.Add(_service.ListHours(0));
        ViewBag.ddlists = ddlists;
        IEnumerable<Project> lp = _service.List("kade", strYear, strMonth);
        UserActivityDb db = new UserActivityDb(@"metadata=res://*/Models.CRA.csdl|res://*/Models.CRA.ssdl|res://*/Models.CRA.msl;provider=Microsoft OLE DB Provider for SQL server;provider connection string=&quot;data source=(local)'SQLEXPRESS;initial catalog=CRAV34;persist security info=True;user id=sa;password=as0;multipleactiveresultsets=True;App=EntityFramework&quot;");
        lp = lp.Where(p => (true == db.ExistUserActivity(int.Parse(strYear), int.Parse(strMonth), ViewBag.ListDaysOfMonth, p.ProjectId, "kade")));

        //nea61
        foreach (Project p in lp)
        {
            cb_listprojects = cb_listprojects.Where(i => (i.Value != p.ProjectId.ToString())).ToList();                                       
        }
        ViewBag.ProjectList = cb_listprojects;
        //nea36
        List<string[]> lstInts = new List<string[]>();
        foreach (Project p in lp)
        {
            string strInts = db.getFormattedData(int.Parse(strYear), int.Parse(strMonth), ViewBag.ListDaysOfMonth, p.ProjectId, "kade", null, 0);
            string[] ints = strInts.Split(';');
            lstInts.Add(ints);
        }
        ViewBag.ProjectInts = lstInts;            
        return View(lp);

到目前为止,我已经尝试过HttpContext.Current.User.Identity.Name,一旦我在控制器中输入ActivityInputCreate,它就是空的。

还有其他想法吗?谢谢。

编辑:string strUser = Environment.UserName.ToLower()是迄今为止我发现的最佳选择-例如,我的用户名是KADE,它将在这种情况下工作;问题是,如果用户有一个随机的或不同的用户名,然后他的登录(这都是他们的姓)。

如何获得当前用户登录到我的ASP的名称.NET MVC网站

将以下名称空间添加到放置代码的控制器中。实际上,我认为只要第一行就足够了:

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

,然后在方法中,您可以使用以下部分来获取用户名:

var uname = User.Identity.GetUserName();