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


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>

Комментарии

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

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

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