我正在使用MVC。我需要获取当前的AD用户名(可能使用SAMAccountName)并将值传递给mailto javascript(应该在电子邮件正文中传递值)。
我应该在哪里放置SAMAccountName代码以及如何使用该值?
答案 0 :(得分:0)
从技术上讲,你应该把它放到ViewData中。如果你必须在整个地方这样做,我建议继承Controller并重写OnActionExecuted以获取当前用户的用户ID并将其放入viewstate:
public class BaseController : Controller
{
protected override void OnActionExecuted( ActionExecutedContext filterContext )
{
ViewData["userid"] = Request.User.Identity;
}
}
然后让你的控制器范围BaseController
public class MyController : BaseController
{
public ActionResult View( int id )
{
return View();
}
}
然后在您的视图中,您可以访问ViewData [“userid”]
<a href="mailto:<%=ViewData["userid"]%>@mycompany.com">Email User</a>
所有这些都说,如果您要进行访问控制等,您可以构建一个“LoggedInUser”类,您可以添加辅助方法。然后将其粘贴在会话中(假设你使用会话就可以了)。您可以在Global.asax Session_Start方法中执行此逻辑。