ASP.NET MVC5 - 使用Active Directory用户的DropDownList
问题描述:
我是ASP.NET MVC的新手,当我尝试将用户从Active Directory发布到我的SQL数据库时,我陷入了困境。ASP.NET MVC5 - 使用Active Directory用户的DropDownList
这是我走到这一步:
视图模型:
public class UserViewModel
{
public IEnumerable<SelectListItem> myADUsers { get; set; }
public int SelectedPersonId { get; set; }
}
控制器:
public ActionResult Index()
{
UserViewModel myADUsers = new UserViewModel();
myADUsers.myADUsers = GetADUsers();
return View(myADUsers);
}
public IEnumerable<SelectListItem> GetADUsers()
{
List<SelectListItem> _users = new List<SelectListItem>();
//Instantiate Active Directory Server Connection
PrincipalContext adServer = new PrincipalContext(ContextType.Domain, null);
//Instantiate Active Directory User Group
GroupPrincipal adGroup = GroupPrincipal.FindByIdentity(adServer, "XXXXX");
if (adGroup != null)
{
foreach (Principal p in adGroup.GetMembers())
{
_users.Add(new SelectListItem { Text = p.SamAccountName, Value = p.SamAccountName });
}
}
IEnumerable<SelectListItem> myADUsers = _users;
return myADUsers;
}
查看:
@Html.DropDownList("My AD Users", Model.myADUsers, "Please select a user")
这工作得很好,因为我的DropDownList被填充我的用户来自Active Directory,但我如何获得选定的用户?
我非常感谢能得到一些tipps ..谢谢。
答
只是把那个DropDownList
到Html.BeginForm
像我这样做如下:
@using (Html.BeginForm("Method", "Controller", FormMethod.Post))
{
@Html.DropDownList("users", Model.myADUsers, "Please select a user")
<button type="submit">Submit</button>
}
然后在你的方法是这样获得的用户名:
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Method(string users)
{
//do stuff here
}
你的意思是你要发送的名字的用户到你的控制器方法? –
感谢您的及时答复。是的,我想将选定的用户名发回给我想填充我的数据库模型(EF6)的UserName属性的Controller。 – exmachina
很高兴,它帮助你 –