3

我们在工作中使用 Sharepoint 作为我们网页的 CMS。我知道如何创建只有在您使用以下方式登录 SharePoint 时才能看到的控件:

<Sharepoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl1" runat="server" PermissionsString="AddAndCustomizePages"><br />
<Sharepoint:CssLink ID="CssLink1" runat="server"/><br />
</Sharepoint:SPSecurityTrimmedControl>

但我想知道如何根据权限以编程方式使控件可见(或其他)。

我不能使用 .NET windows 表单身份验证的方法,例如:

        if (!(HttpContext.Current.User == null) && HttpContext.Current.User.Identity.IsAuthenticated){}

因为我们将它用于具有另一种登录类型的匿名用户。

你能提供一些代码吗?我知道它必须类似于验证 SPContext.Current.FormContext。

4

3 回答 3

4

用户是如何认证的?使用表单身份验证或 Windows/活动目录?

如果是活动目录,那么我认为在这种情况下您可能需要获取对当前 SPWeb 的引用,然后执行 web.CurrentUser.ID。当您匿名时,这可能会为空。如果没有,试试 web.SiteUsers.GetByID(web.CurrentUser.ID) 看看你得到了什么。

于 2008-12-19T17:48:03.443 回答
1

用户是否有权限

您可以在当前网络上使用此方法来检查当前用户是否具有特定权限。

我假设您的经过身份验证的用户有一些权限来检查匿名人群是否被拒绝。

于 2008-12-28T16:03:11.540 回答
0

虽然我没有测试过,但我想 SPUser 对象的 LoginName 属性会是空白的,或者抛出异常。

...当然,在与 SharePoint OM 打交道时假设任何事情都不安全 :(

于 2008-12-22T02:25:20.447 回答