Реклама:

<asp:Button runat-'server" ID="_btnGenerate" Text="Generate"

OnClick="_btnGenerate_Click" /> <br />

<asp: Label runat="server" ID='"_lblOutput" />

</div> </form> </body> </titml>

Метод FormsAulkenlicationAuthenticate использует пользовательское имя и пароль, подтверждает мандаты с помощью элемента <credentials> и может непосредственно использоваться в провайдере Membership.

Провайдер членства web.config

public class WebConfigMembershipProvider : MembersbipProvider {

// Нереализованные члены пропускаются

public override bool ValidateUserl string username, string password)

{

return FormsAuthentication.Authenticate(username, password);

}

}

Для ролей не предусмотрен никакой встроенный элемент конфигурации, который хранил бы информацию. Создайте для этого собственный раздел конфигурации, позволяющий добавлять роли и назначения. Этот раздел конфигурации выглядит следующим образом;

<rolesConfiguration> <roles>

<add павв= SpecialUser" members="Alice. Bob" /> odd name= Sales" members="Al ice" /> Odd name="Marketing" members="Bob" /> </roles> </rolesConfiguration>

Воспользовавшись преимуществами API конфигурации, вы сможете создать обработчик раздела, который разрешает программный доступ к информации о ролях со строгим контролем типов.

Обработчик раздела RolesConflguratlon

II Элемент высшего уровня

public class RolesConfigurationSection : ConfigurationSection {

// Вторичный элемент "roles" [Conf igurationProportyC roles")] public RolesCollection Roles <

get {

ret urn ((RolesCollect ion)(base["roles"]));

}

}

// Класс коллекции дпя поддержки семантики // добавления/удаленин/очистки

[ConfigurationCollectionAttribute(typeof(RclesElement))] public class RolesCollection : ConfigurationElementCollection {

protected override ConfigurationElement CreateNewElement() return new RolesElementO;

protected override object GetElementKey( ConfigurationElement element)

return ((RolesElement)(element)).Name;

public void Add(RolesElement element) this,BaseAdd(element);

public void Remove(string key) this.BaseRemove(key);

public void ClearQ this.BaseClearQ;

// Отдельный элемент role

public class RolesElement : ConfigurationElement {

// Атрибут Name [Configu rat ionP roperty("name", DefaultValue = "", IsKey = true. IsRequired = true)] public string Name {

get

{

return ((string)(basef"name"]));

}

set

{

base["name"] = value;

}

}

// Атрибут Members

// Преобразователь типов преобразует список, разделенный запятыми // а коллекцию строк

[Configurat-onPropertyf"members". De^ai. It Value = "", IsKey =

false, IsRequired = false)] [TypeConverter(

typeof(Cofi-iaOelimitedStringCollectionCor,verter))] public StringCollection Members {

get {

ret-fri ((Stri".9Collection)(Dase["merr.bers"])):

}

set

К

base["memoers"] = value;

\

}

I

Провайдер ролей должен реализовать метод GetRolesUser и проанализировать элемент конфигурации. Модуль RoleManagerModule создает RolePrincipal и кэширует его в файле cookie, если функция кэширования включена.


⇐ Предыдущая страница| |Следующая страница ⇒