Fórum Problema com profile #27234
12/03/2010
0
Ademilso Peres
Curtir tópico
+ 0Posts
14/03/2010
Luiz Maia
O Profile é bem semelhante ao objeto Session atual, onde para cada usuário que temos em nossa aplicação Web é criado um Profile para ele. Até então funciona da mesma forma que o objeto Session. Mas o mais interessante está por vir, ou seja, quando fechamos o browser, a Session é perdida. Já utilizando o Profile ele se mantém persistente mesmo depois do usuário fechar o browser. Pode ser isto que o IIS 8 esta dando problemas.
Isso se deve graças ao uso, por default, do Microsoft Access, onde são armazenadas estas informações, que fica dentro de uma pasta chamada Data, dentro da sua aplicação. Vale lembrar que é perfeitamente possível o uso de uma outra Base de Dados para termos uma melhor performance, como por exemplo SQL Server ou Oracle.
Além da vantagem de se manter persistente mesmo depois de fechado o Browser, o Profile ainda tem uma vantagem, que particularmente considero fantástica, que é fortemente tipado (strongly typed), ao contrário da Session, que por sua vez aceitava um Object. Além disso, o IntelliSense já reconhece as propriedades, tornando assim o desenvolvimento mais rápido e menos propício a erros.
Definindo o Profile
Você deve utilizar o arquivo Web.Config para gerar a estrutura que o teu objeto Profile irá ter. Temos à nossa disposição o elemento profile, onde definimos as propriedades que vamos disponibilizar. O cenário é termos dentro do Profile, o Nome e Email do Usuário. Abaixo o código do arquivo Web.Config que define o Profile:
1 2 3 4 5 6 7 8 9 10 11 12 13 <configuration> <system.web> <authentication mode="Forms" /> <anonymousIdentification enabled="true" /> <profile> <properties> <add name="Nome" defaultValue="" allowAnonymous="true" /> <add name="Email" defaultValue="" allowAnonymous="true" /> </properties> </profile> </system.web> </configuration> Código 1 - Definindo a estrutura do Profile no arquivo Web.Config.
Analisando o código acima, vemos o elemento anonymousIdentification que especificará que o Profile será criado para usuários anônimos ou autenticados. Se definí-lo com False e tentar atribuir algum valor as propriedades em runtime e o usuário não estiver autenticado, uma Exception será lançada. Já o atributo allowAnonymous é requerido quando as propriedades são usadas com usuários anônimos.
O código para atribuir um valor as propriedades, fica da seguinte forma:
1 2 Profile.Email = "israel@projetando.net" Profile.Nome = "Israel Aéce" Código 2 - Acessando as propriedades do Profile.
O Intellisense já passa a interpretar as propriedades que definimos no Web.Config.
Repare que o tipo do dado não é definido. Isso porque o default, quando não informamos é System.String. Caso queria definir um tipo Inteiro ou qualquer outro tipo, tem o atributo type, onde define-se o tipo de dado que queira para aquela propriedade.
Profile Groups
Quando começamos a criar várias propriedades dentro do arquivo Web.Config para utilizarmos no Profile, começamos a ter a necessidade de separar algumas delas em grupos para que facilite a compreensão e organização. Para isso temos o elemento group, onde dentro dele colocamos as propriedades pertinentes ao mesmo. Se quisermos adicionar um grupo chamando Endereco, contendo Rua, Cidade, Estado, fazemos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <configuration> <system.web> <authentication mode="Forms" /> <anonymousIdentification enabled="true" /> <profile> <properties> <add name="Nome" defaultValue="" allowAnonymous="true" /> <add name="Email" defaultValue="" allowAnonymous="true" /> <group name="Endereco" /> <add name="Rua" defaultValue="" allowAnonymous="true" /> <add name="Cidade" defaultValue="" allowAnonymous="true" /> </group> </properties> </profile> </system.web> </configuration> Código 3 - Definindo grupos do Profile no arquivo Web.Config.
E para acessá-los, o código fica:
1 2 3 4 Profile.Email = "israel@projetando.net" Profile.Nome = "Israel Aéce" Profile.Endereco.Rua = "Magnólias, das" Profile.Endereco.Cidade = "Valinhos" Código 4 - Acessando as propriedades com grupos do Profile.
Gostei + 0
15/03/2010
Ademilso Peres
Gostei + 0
16/03/2010
Luiz Maia
Gostei + 0
16/03/2010
Ademilso Peres
Gostei + 0
17/03/2010
Luiz Maia
Please pay attention to the Event logs in Windows Logs--->Application. User Profile Service will log events to show the reason why the roaming profile is not applied. http://www.pcfixreview.com Abraços Att Luiz Maia
Gostei + 0
22/03/2010
Ademilso Peres
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)