我遇到了这种情况并需要一些帮助。
我有一个CMS站点,其中2个单独的单独文件夹是管理页面用于管理目的。他们需要启用Windows身份验证。这就是我做的。
在IIS中,我为整个站点启用了匿名身份验证并禁用了Windows身份验证。
我仅为特定文件夹启用了Windows身份验证,并为用户提供了该文件夹的读取权限。
一切都很好。当弹出窗口打开并且我提供我的Windows凭据并且它已经过身份验证时,使用我的.net应用程序,当我尝试查看System.Web.HttpContext.Current.User.Identity.Name
时,我得到" sitecore\Admin
"而不是获取我当前的Windows用户ID。任何有关这方面的帮助将非常感谢!!!
答案 0 :(得分:0)
通过IIS单独启用文件夹上的Windows身份验证只会保护文件夹,并且不会绑定到Sitecore成员资格提供程序,因此不会设置当前用户的身份。当页面加载时,您必须自己在自定义管理页面上执行该部分。
您可以通过从LOGON_USER
服务器变量获取用户名来完成此操作:
var username = Context.Request.ServerVariables["LOGON_USER"];
然后,您可以通过调用Sitecore.Security.Authentication.AuthenticationManager.Login
方法更改当前用户的身份:
var success = Sitecore.Security.Authentication.AuthenticationManager.Login(userName, false);
if (!success)
{
// Handle login failure.
}