gpt4 book ai didi

c# - 来自 NetworkCredentials 的用户权限掩码

转载 作者:行者123 更新时间:2023-11-30 17:11:27 25 4
gpt4 key购买 nike

虽然我目前正在我们的 Sharepoint 服务器上开发这个 WinForms 应用程序,但我希望完成的程序能够在域上的任何计算机上运行。我正在使用 WSS 网络服务获取我从 Sharepoint 使用的所有信息。

我已经编写了一些代码来检查 Sharepoint 权限掩码,使用针对掩码的逻辑 OR 来检查它涵盖的所有权限,但我无法为当前用户返回 Sharepoint 掩码。我希望用户能够通过 Windows 身份验证直接登录,所以这是我的直接想法。

NetworkCredential credentails = CredentialCache.DefaultNetworkCredentials;
var userInfo = userGroupService.GetUserInfo(credentails.UserName);

但是,尽管我能够使用 DefaultNetworkCredentials 返回整个 Sharepoint 站点的权限集合(如以下代码段所示),但属性是空字符串,因此我无法使用它来获取用户名.

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 身份验证遇到 double-hop issue 问题,我想避免这种情况,但是当我在 Sharepoint 和 IIS 正在运行的服务器上进行开发时,我看不到这会导致直接问题。

是否有解决此问题的方法或更好的方法来获取当前用户权限掩码?

最佳答案

如果 wss 的当前用户将始终与当前登录到 pc 的用户相同

var userInfo = userGroupService.GetUserInfo(Environment.UserDomainName +@"\"+ Environment.UserName);

或者获取当前登录用户的权限

XmlNode currentUserPermission = userGroupService.GetRolesAndPermissionsForCurrentUser();

关于c# - 来自 NetworkCredentials 的用户权限掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11410960/

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