這可能是一個奇怪的問題,但我希望實現的功能是允許特定用戶查看SharePoint頁面,就好像他們以不同用戶身份登錄一樣。在Sharepoint 2013上以編程方式模擬用戶(C#)
比方說,我們有一個學生頁面和一個職員頁面。我不是學生,但我想以一個學生的身份登錄,以便能夠查看學生頁面。那有意義嗎?所以,在某種程度上,模仿。
我發現了一些模擬代碼,它工作正常,但它不是我想要的。我能夠在單獨的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; }
}
非常感謝。
如果您實施自己的安全令牌服務,並且在用戶登錄時說謊,說您的用戶實際上是其他人,我可以看到它正在完成 - 這不是我已經玩過的東西... – Choggo 2015-01-28 17:37:24
Valeu! !這是我們已經實現的功能,並且我希望能夠在SharePoint中執行相同的功能。你有開發和部署Web部件的經驗嗎? – Naner 2015-01-28 22:41:32
是的,我確實有過這樣的經歷 – Choggo 2015-01-28 22:44:19