如何获得当前用户登录到我的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="data source=(local)'SQLEXPRESS;initial catalog=CRAV34;persist security info=True;user id=sa;password=as0;multipleactiveresultsets=True;App=EntityFramework"");
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,它将在这种情况下工作;问题是,如果用户有一个随机的或不同的用户名,然后他的登录(这都是他们的姓)。
将以下名称空间添加到放置代码的控制器中。实际上,我认为只要第一行就足够了:
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
,然后在方法中,您可以使用以下部分来获取用户名:
var uname = User.Identity.GetUserName();