【问题标题】:How can I get the current user-GUID in SharePoint 2010?如何获取 SharePoint 2010 中的当前用户 GUID?
【发布时间】:2012-06-21 09:48:33
【问题描述】:

如何使用 C# 在 SharePoint 2010 中获取当前用户的 GUID?以下是我的代码:

    public string readAndEncodeGUID()
    {
        Guid userGuid = Guid.Empty;

        SPSecurity.RunWithElevatedPrivileges(delegate()
        {                
            SPWeb readWeb = SPContext.Current.Web;
            SPUser currUser = SPContext.Current.Web.CurrentUser;
            userGuid = new Guid(currUser.RawSid);
        });

        //Variable = encode USER-GUID
        return userGuid.ToString();
    }

RawSid 得到的“数字”不正确。

谢谢

【问题讨论】:

    标签: c# asp.net sharepoint web-parts guid


    【解决方案1】:

    查看SPUser 成员。 您应该根据需要使用ID 属性或SidRawSid是二进制格式的用户系统ID。

    【讨论】:

    • 对不起,我也测试了 ID 和 SID。无法以 GUID 格式保存此 ID -> Guid userGuid = new Guid(currUser.???);
    • 因为我喜欢 GUID 格式 :-) 我怎样才能得到 UserGUID?
    • 使用 SPUser.ID 属性并将其转换为 GUID stackoverflow.com/questions/4825907/convert-int-to-guid
    • SID 永远不会适合 GUID 格式。它是基于域权限和用户类型构建的。它只是看起来很相似。为了存储用户的唯一密钥,您可以使用 ID,但这只能在 SP 操作中识别。对于它之外的安全工作,您可能需要保留 SID。
    • 我已经考虑过了。 GUID 格式不是那么重要,但我需要一个唯一的数字来识别用户。我认为 GUID 是最好的解决方案。现在我也测试其他格式。如果我使用 ID,我只会得到一个数字(在我看来不太好)。 SID 得到一个很好的数字。对我来说,准确识别用户很重要。你有什么建议吗?SID 是否适合这个雄心壮志?
    猜你喜欢
    • 2012-06-20
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 2014-01-25
    相关资源
    最近更新 更多