我目前正在将基于 Sharepoint 2007 构建的企业内容管理系统迁移到 Sharepoint 2010。该系统包含一个基于自定义表单的身份验证提供程序和一个自定义角色提供程序。用户角色映射存储在数据库中,如下所示:
userID roleID siteURL
21 15 www.sitea.com
21 10 www.siteb.com
22 15 www.sitea.com
在角色提供者中,分配给当前站点的角色是通过站点 URL 获取和设置的。这可以通过在其 Initilize 方法中设置角色提供者的自定义属性(例如名为 SiteURL 的属性)来解决,如下所示:
SiteURL = SPContext.Current.Web.Url;
但是,在 Sharepoint 2010 中,该行不再可用。因为在 Sharepoint 2010 声明授权中,自定义角色提供程序在名为 SecurityToken Web 服务的单独 Web 服务中调用。所以 SPContext.Current 为空。
现在我必须找到另一种方法来获取请求身份验证的站点 url。你能给我一些建议吗?