![](/img/trans.png)
[英]Use Windows Service “Log on as” user as NetworkCredentials for a web request
[英]User Permission Mask from NetworkCredentials
雖然我目前正在我們的Sharepoint服務器上開發這個WinForms應用程序,但我打算讓已完成的程序從域上的任何計算機上運行。 我正在使用WSS Web服務從Sharepoint獲取我使用的所有信息。
我已經編寫了一些代碼來檢查Sharepoint Permission掩碼,對掩碼使用邏輯OR,因為它覆蓋了所有權限,但是我無法為當前用戶返回Sharepoint掩碼。 我希望用戶能夠通過Windows身份驗證進行登錄,這是我的直接想法。
NetworkCredential credentails = CredentialCache.DefaultNetworkCredentials;
var userInfo = userGroupService.GetUserInfo(credentails.UserName);
但是,雖然我能夠使用DefaultNetworkCredentials
(如下面的代碼段)返回整個Sharepoint站點的權限集合,但屬性是空字符串,因此我無法使用它來獲取UserName。
permissionService.Credentials = CredentialCache.DefaultNetworkCredentials;
permissionService.Url = "http://localhost/mySite/_vti_bin/Permissions.asmx";
// Web service request works
XmlNode node = permissionService.GetPermissionCollection(siteName, "Web");
// But I need to identify current user from this collection somehow still
我讀到Windows身份驗證遭遇雙跳問題 ,我想避免,但是當我在服務器上開發Sharepoint和IIS正在運行時,我看不到這會立即引發問題。
有沒有辦法繞過這個或更好的方式獲得當前用戶權限掩碼?
如果wss的當前用戶將始終與當前登錄到PC的用戶相同
var userInfo = userGroupService.GetUserInfo(Environment.UserDomainName +@"\"+ Environment.UserName);
或獲取當前登錄用戶的權限
XmlNode currentUserPermission = userGroupService.GetRolesAndPermissionsForCurrentUser();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.