AuthorizationStoreRoleProvider.ApplicationName Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает имя приложения хранилища авторизации, для которого необходимо хранить и извлекать сведения о роли.
public:
virtual property System::String ^ ApplicationName { System::String ^ get(); void set(System::String ^ value); };
public override string ApplicationName { get; set; }
member this.ApplicationName : string with get, set
Public Overrides Property ApplicationName As String
Значение свойства
Имя приложения хранилища авторизации, для которого необходимо хранить и извлекать сведения о роли. По умолчанию используется ApplicationPath значение свойства для текущего Request.
Исключения
Предпринята попытка задать ApplicationName строку, длинную до 256 символов.
Примеры
В следующем примере показан <элемент roleManager> в system.web разделе файла Web.config для приложения ASP.NET. Он задает экземпляр приложения AuthorizationStoreRoleProvider и задает ApplicationName для свойства значение MyApplication.
<roleManager defaultProvider="AuthorizationStoreProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All" >
<providers>
<add
name="SqlProvider"
type="System.Web.Security.AuthorizationStoreRoleProvider"
connectionStringName="AuthorizationStoreServices"
scopeName="MyScope"
applicationName="MyApplication" />
</providers>
</roleManager>
Комментарии
Используется ApplicationNameAuthorizationStoreRoleProvider для связывания пользователей и ролей с различными приложениями диспетчера авторизации, что позволяет нескольким приложениям ASP.NET использовать одно хранилище политик диспетчера авторизации для хранения сведений о роли без конфликтов между повторяющимися именами ролей. Кроме того, несколько ASP.NET приложений могут использовать одно и то же хранилище политик, указав одно и то же значение в свойстве ApplicationName . Свойство ApplicationName можно задать программным способом или задать его декларативно в файле Web.config приложения с помощью атрибута applicationName .
Если значение не указано для атрибута applicationName в файле Web.config, HttpRequest.ApplicationPath используется значение свойства для текущего HttpContext.Request объекта.
Замечание
Имена приложений диспетчера авторизации не могут содержать символ "/", включенный HttpRequest.ApplicationPath в свойство. В результате значение по умолчанию для ApplicationName свойства нельзя использовать в качестве имени приложения диспетчера авторизации, а в файле Web.config приложения всегда необходимо указать applicationName атрибут в provider элементе для настройки AuthorizationStoreRoleProvider экземпляра.
Предостережение
Так как для всех запросов, обслуживаемых HttpApplication объектом, используется один экземпляр поставщика ролей по умолчанию, можно одновременно выполнять несколько запросов и пытаться задать ApplicationName значение свойства. Свойство ApplicationName не является потокобезопасным для нескольких операций записи, и изменение ApplicationName значения свойства может привести к неожиданному поведению при наличии нескольких пользователей приложения. Рекомендуется избегать написания кода, позволяющего ApplicationName пользователям задавать свойство, если не требуется. Пример приложения, в котором может потребоваться задание ApplicationName свойства, — это административное приложение, которое управляет данными ролей для нескольких приложений. Такое приложение должно быть однопользовательским приложением, а не веб-приложением.