Поделиться через


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 свойства, — это административное приложение, которое управляет данными ролей для нескольких приложений. Такое приложение должно быть однопользовательским приложением, а не веб-приложением.

Применяется к

См. также раздел