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


SqlRoleProvider.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 вызывающим объектом, который не имеет разрешения High среды ASP.NET.

Была предпринята попытка задать свойству ApplicationName значение строки, длина которой более 256 символов.

Примеры

В следующем примере показан roleManager элемент в system.web разделе файла Web.config для приложения ASP.NET. Он задает экземпляр приложения SqlRoleProvider и задает свойству ApplicationName значение MyApplication.

<roleManager defaultProvider="SqlProvider"
  enabled="true"
  cacheRolesInCookie="true"
  cookieName=".ASPROLES"
  cookieTimeout="30"
  cookiePath="/"
  cookieRequireSSL="false"
  cookieSlidingExpiration="true"
  cookieProtection="All" >
  <providers>
    <add
      name="SqlProvider"
      type="System.Web.Security.SqlRoleProvider"
      connectionStringName="SqlServices"
      applicationName="MyApplication" />
  </providers>
</roleManager>

Комментарии

ApplicationName используется для связывания SqlRoleProvider пользователей и ролей с разными приложениями. Это позволяет нескольким приложениям использовать одну и ту же базу данных для хранения сведений о пользователях и ролезах без конфликтов между повторяющимися именами пользователей или ролей. Несколько ASP.NET приложений могут использовать одну и ту же базу данных, указав одно и то же значение в свойстве ApplicationName . Свойство ApplicationName можно задать программным способом или декларативно в файле конфигурации веб-приложения с помощью атрибута applicationName .

Если значение атрибута applicationName не указано в файле конфигурации веб-приложения, используется HttpRequest.ApplicationPath значение свойства для текущего HttpContext.Request объекта.

Внимание!

Так как для всех запросов, обслуживаемых HttpApplication объектом, используется один экземпляр поставщика ролей по умолчанию, вы можете иметь несколько запросов, выполняющихся одновременно и пытающихся задать ApplicationName значение свойства. Свойство ApplicationName не является потокобезопасным для нескольких операций записи, и изменение ApplicationName значения свойства может привести к непредвиденному поведению для нескольких пользователей приложения. Рекомендуется избегать написания кода, который позволяет пользователям задавать ApplicationName свойство, если это не требуется. Примером приложения, в котором может потребоваться задание ApplicationName свойства, является административное приложение, которое управляет данными ролей для нескольких приложений. Такое приложение должно быть однопользовательским, а не веб-приложением.

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

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