0

我正在使用 MVC。我需要获取当前的 AD 用户名(可能使用 SAMAccountName)并在 mailto javascript 上传递值(应该在电子邮件正文上传递值)。
我应该将 SAMAccountName 代码放在哪里以及如何使用该值?

4

1 回答 1

0

从技术上讲,您应该将其放入 ViewData。如果您必须在所有地方执行此操作,我建议继承 Controller 并覆盖 OnActionExecuted 以获取当前用户的用户 ID 并将其放入视图状态:

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 方法中执行此逻辑。

于 2011-02-04T05:05:07.923 回答