1

• 我们如何覆盖SP 2010(声明身份验证方案)中的授权机制来执行hos 自定义逻辑而不是使用OOB SP 逻辑。当我说覆盖时,这意味着我应该能够通过我的逻辑允许/拒绝访问任何请求资源,而不管 SP 权限如何。• 通过其他讨论,我了解到我们无法覆盖 SP 2010 中的授权机制,但我可以接受任何程度的自定义(如模块等)。• 我已经知道我们可以在SP 完成授权“之前”插入自定义逻辑,并转换/添加/删除经过身份验证的用户的声明。但是我们的需求无法通过自定义声明提供者来解决,因为我们不会知道请求中访问的资源(被访问的 URL 除外)。换句话说,

4

1 回答 1

1

您可以在SPSessionAuthenticationModule中处理事件,并在那里执行自定义逻辑。特别是,您可以覆盖 SessionSecurityTokenReceived 事件以检查令牌内容并根据其内容执行自定义操作。您还可以检查 HttpContext.Current,以获取 URL、请求内容等。

检查此示例代码,它可以添加到 SharePoint 应用程序 Global.asax 文件中。

<script runat="server">
public override void Init()
{
    FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenReceived += new EventHandler<SessionSecurityTokenReceivedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenReceived);

    base.Init();
}

void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
    DateTime validFrom = e.SessionToken.ValidFrom;
    DateTime validTo = e.SessionToken.ValidTo;
    ...

}
</script>
于 2013-01-10T15:13:40.750 回答