1

我有一个 ASP.NET MVC 4 项目,它在 Web.config 中使用 Windows 身份验证,如下所示:

<system.web>
    <authentication mode="Windows" />
</system.web>

但是,如果我ServiceSecurityContext.Current从 Controller 方法进行调查,则为空。由于我使用的是 Windows 身份验证,它不应该包含用户的身份验证信息吗?

我试图弄清楚这一点的原因是因为我想知道CredentialCache.DefaultNetworkCredentialsController 方法中使用的是什么凭据。根据我通过阅读有关该属性的 MSDN 文章收集到的信息,它使用当前安全上下文的凭据......这是空的。

谢谢您的帮助!

4

1 回答 1

5

这些ServiceContext类旨在在 WCF 服务中使用。它与 ASP.NET MVC 无关。

尝试ServiceContext.Current在 ASP.NET MVC 应用程序中使用就像尝试HttpContext.Current在控制台应用程序中使用 => 你得到 NULL。

我试图弄清楚这一点的原因是因为我想知道 CredentialCache.DefaultNetworkCredentials 从 Controller 方法使用什么凭据

然后您正在寻找该User.Identity.Name物业:

[Authorize]
public ActionResult Index()
{
    string currentUser = User.Identity.Name;
    ...
}
于 2013-01-23T22:22:41.700 回答