gpt4 book ai didi

c# - 在 Sharepoint 2013 (C#) 上以编程方式模拟用户

转载 作者:行者123 更新时间:2023-11-30 18:26:42 26 4
gpt4 key购买 nike

这可能是一个奇怪的问题,但我想要实现的是一种允许特定用户查看 SharePoint 页面的功能,就像他们以不同用户身份登录一样。

假设我们有一个 Student 页面和一个 Staff 页面。我不是学生,但我想以学生身份登录,以便能够像学生一样查看学生页面。那有意义吗?所以,在某种程度上,模仿。

我找到了一些模拟代码,它运行良好,但不是我想要的。我能够在单独的 SPWeb 对象中模拟用户。但是,如何更改事件 SPWeb 对象的当前用户上下文?

这是我得到的:

private void ImpersonateUser()
{
string siteURL = "http://mywebsite/";
SPSite parentSite = new SPSite(siteURL);
SPUserToken systemToken = parentSite.SystemAccount.UserToken;
using (SPSite site = new SPSite(siteURL, systemToken))
{
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
OpenUserContext(web, siteURL, @"domain\studentuser");
}
}
}

private void OpenUserContext(SPWeb web, string siteURL, string user)
{
try
{
SPUser ensure = web.EnsureUser(user);
SPSite impSite = new SPSite(siteURL, ensure.UserToken);
SPWeb impWeb = impSite.OpenWeb();

// Do something as impersonated user
label1.Text = "Currently logged in as: " + impWeb.CurrentUser.ToString() + "(" + impWeb.CurrentUser.Name + ")";

}
catch (Exception ex) { label1.Text = ex.Message + "<br>" + user; }
}

非常感谢。

最佳答案

虽然 SharePoint 确实允许您的代码在模拟用户时与之交互,但它不支持您像其他用户一样浏览和查看内容。

但是,您可以编写自定义代码以考虑您的需求并向它们添加模拟逻辑(但这取决于您的实现,SP 不会帮助您)。 Project Server 会执行您所要求的操作,但仅限于涉及 Project Server 拥有的元素时。

关于c# - 在 Sharepoint 2013 (C#) 上以编程方式模拟用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com