1

我的要求是当有人登录到站点时,如果他属于“所有者”组,则需要立即重定向到特定站点,如果他属于成员组,则需要导航/重定向到同一指定站点的其他页面。

4

2 回答 2

2

一个非常简单的解决方案可能是使用SPSecurityTrimmedControl. 它所做的是,仅当用户完成指定的访问权限时,它才会添加控件内的任何内容。

因此,您可以做的是将控件的权限设置为完全控制并包含一个简单的重定向 JavaScript。之后,在控件之外,将重定向脚本添加到其他控件。如下所示:

<SharePoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl1" runat="server" AuthenticationRestrictions="AuthenticatedUsersOnly" Permissions="ManageWeb" PermissionContext="CurrentSite">  
    <script type='text/javascript'>javascript to redirect owners</script>
</SharePoint:SPSecurityTrimmedControl> 
<script type='text/javascript'>javascript to redirect readers</script>

因此,如果用户是所有者,则所有者重定向脚本将出现在页面上,如果不是,则它将重定向到读者的页面。

于 2015-02-06T18:12:16.833 回答
0

由于它是在 SP2010 中,我假设我们使用服务器端 C# 代码而不是 CSOM,CSOM 在 SP2010 中尚未成熟。

  1. 创建一个静态辅助方法,例如:

    public static bool IsInGroup(this SPUser user, SPGroup group) { return user.Groups.Cast() .Any(g => g.ID == group.ID); } }

  2. 在您的代码中验证用户是否属于某个组

    SPUser 用户;SP集团;bool belongsToGroup = user.InGroup(group);

  3. 使用 SPUtility.Redirect 将用户重定向到您需要的任何页面。

希望这会有所帮助。

于 2015-02-06T13:41:39.707 回答