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