当我做的时候
$ date > filename
$ export filename=len
$ cat 'fi'"$filename"'ame'
Sun Apr 17 16:20:20 CEST 2016
我收到以下回复:
Console.WriteLine(SPContext.Current.Web.CurrentUser.LoginName);
当我做的时候
i:0#.w|domain\\username
我得到了
SPSecurity.RunWithElevatedPrivileges(delegate() {
Console.WriteLine(SPContext.Current.Web.CurrentUser.LoginName);
});
在登录名中没有domain\appPoolAccount
....
有人能解释为什么会这样吗?
答案 0 :(得分:4)
用户名之前的前缀(i:0#.w |)只是一个内部代码,因此SharePoint可以识别身份验证的类型(w:windows auth,f:formsbased等等)。代码中的i用于标识它是用户。仅供参考,如果您尝试写出一个组,前缀将是c而不是i。
你在raiseprivileges中没有前缀的事实是,这将始终是admin / pool-account,它永远是windows用户 - 所以不需要添加前缀...
答案 1 :(得分:0)
前缀(i:0#.w |)用于基于声明的身份验证,这是您的SharePoint 2013 Web应用程序所在,并且没有提升的权限将解析为登录帐户(基于声明)。但是,当您使用Elevated Privileges运行时,您将使用应用程序池用户运行,该用户是您的案例中的Windows域用户,您可以在运行SharePoint 2013的服务器上的IIS中找到该用户。