В настоящее время я выполняю миграцию системы управления корпоративным контентом, которая была построена на Sharepoint 2007, на Sharepoint 2010. Система содержит провайдера аутентификации на основе пользовательских форм и провайдера пользовательских ролей. Отображения роли пользователя хранятся в БД, как показано ниже:
userID roleID siteURL
21 15 www.sitea.com
21 10 www.siteb.com
22 15 www.sitea.com
В поставщике роли роль, которой назначена текущая страница, определяется и задается через URL-адрес сайта. Это было решено путем установки настраиваемого свойства (например, свойства с именем SiteURL) поставщика роли в его методе Initilize, как показано ниже:
SiteURL = SPContext.Current.Web.Url;
Однако в Sharepoint 2010 эту линию больше нельзя было использовать. Поскольку в Sharepoint 2010 утверждается авторизация, пользовательский поставщик ролей вызывается в отдельной веб-службе с именем веб-службы SecurityToken. Так что SPContext.Current имеет значение null.
Теперь мне нужно найти альтернативный способ получения URL-адреса сайта, запрашивающего аутентификацию. Не могли бы вы дать мне какие-либо предложения?