【发布时间】:2012-06-08 01:59:18
【问题描述】:
我在 VS 2012 RC 下使用 MVC 4 的 Intranet 模板。右上角显示域\用户名,我希望它显示全名。
我能够在 _Layout.cshtml 中使用它。我在正文中包含了以下助手 -
@helper AccountName()
{
using (var context = new System.DirectoryServices.AccountManagement.PrincipalContext(System.DirectoryServices.AccountManagement.ContextType.Domain))
{
try
{
var principal = System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(context, User.Identity.Name);
@String.Concat(principal.GivenName, " ", principal.Surname)
}
catch { }
}
}
(我还必须在引用中包含 System.DirectoryServices.AccountManagement)
然后我可以在问候代码中使用帮助器,如下所示 -
<section id="login">
Hello, <span class="username">@AccountName()</span>!
</section>
这没问题,但我不喜欢 _Layout.cshtml 中的代码。我试图将帮助程序放在 Helpers 目录下的单独文件中,但 @AccountName() 不再解决。理想情况下,代码应该在一个直接的 CS 文件中。
谁能提出更好的设置方法?
【问题讨论】:
-
这对我不起作用。我把那个助手放在我的 _layout 的顶部,它说命名空间 DirectoryServices 的目录不可用。我在应用程序“引用”中添加了它......我错过了什么?
标签: c# asp.net-mvc asp.net-mvc-4