如何在ASP.NET,而不禁用窗体身份验证



我希望能够获得用户的Windows登录名,而无需禁用表单身份验证。我知道这可能是通过使用以下代码行,并在.config文件中拒绝匿名登录,再加上启用Windows身份验证:

System.Web.HttpContext.Current.User.Identity.Name

这有可能实现吗?

谢谢。

我认为这是不可能的。表单身份验证和Windows身份验证是互斥的。您可以启用其中一个,当前用户标识将由相应的HTTP模块填充。

如果他们经过身份验证,您应该能够使用以下内容:

User.Identity.Name 

Page.User.Identity.Name;

是的,您可以这样做,但仍然需要表单身份验证。您只需要通过会话变量或其他东西自行确定"已验证"即可。只需执行您已经说明的步骤,它将在默认情况下执行Windows身份验证。


如果您仍然需要表单身份验证,则需要Session中的标志来了解用户是否通过了身份验证。因此,在登录过程中,您可以这样做:

Session["IsAuthenticated"] = true;

此外,当加载主页时,您可以这样做:

if (!Convert.ToBoolean(Session["IsAuthenticated"]))
{
    // redirect to the login page
}

最新更新