Fórum Problema com menu #130844

22/03/2010

0

Todos os itens do menu aparecem independente do perfil, segue o codigo.     Menu vinculado a teste datasource<asp:SiteMapDataSource ID="SMDS" SiteMapProvider="Administrador" runat="server" ShowStartingNode="False" /> no web.config   <siteMap defaultProvider="Administrador" enabled="true">
<providers>
<add name="Administrador" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="Administrador.sitemap"/>
</providers>
</siteMap>
  No aquivo Administrado.sitemap     <?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/" title="Administrador">
<siteMapNode url="UsuarioListar.aspx" title="Usuário"/>
<siteMapNode url="TrocarSenha.aspx" title="Trocar Senha"  description="" roles="vendedor" />
<siteMapNode url="Camadas.aspx" title="Camadas"  description=""  roles="vendedor"/>
</siteMapNode>
</siteMap>
             
Ademilso Peres

Ademilso Peres

Responder

Posts

23/03/2010

Fabio Mans

Olá adicione no Web.Config

<roleManager enabled="true"/>

Dentro de <system.web>

E faça o teste.

Caso não de certo renomei o arquivo Administrado.sitemap para Web.sitemap.

Fabio



==================================================

Todos os itens do menu aparecem independente do perfil, segue o codigo.     Menu vinculado a teste datasource<asp:SiteMapDataSource ID="SMDS" SiteMapProvider="Administrador" runat="server" ShowStartingNode="False" /> no web.config   <siteMap defaultProvider="Administrador" enabled="true">
<providers>
<add name="Administrador" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="Administrador.sitemap"/>
</providers>
</siteMap>
  No aquivo Administrado.sitemap     <?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/" title="Administrador">
<siteMapNode url="UsuarioListar.aspx" title="Usuário"/>
<siteMapNode url="TrocarSenha.aspx" title="Trocar Senha"  description="" roles="vendedor" />
<siteMapNode url="Camadas.aspx" title="Camadas"  description=""  roles="vendedor"/>
</siteMapNode>
</siteMap>
Responder

Gostei + 0

23/03/2010

Ademilso Peres

Consegui resolver este problema, mas estou com outro mais sério e agraderia se voce me ajuda-se de alguma forma. Sempre que entro na aplicação o objeto "Profile" está nulo, está faltando algum comando que cria a instancia do mesmo? 
Responder

Gostei + 0

23/03/2010

Fabio Mans

Você criou as tabelas do Profile no Banco?  
Responder

Gostei + 0

23/03/2010

Ademilso Peres

sim, perfeitamente.
Responder

Gostei + 0

23/03/2010

Fabio Mans

Mostra pra mim como você configurou o Web.Config.

Segue um exemplo


  <remove name="LocalSqlServer"/>
    <add name="LocalSqlServer" connectionString="Database=Store;Server=67.19.176.98;Persist Security Info=True;User ID=ccc;Password=cccc;" providerName="System.Data.SqlClient"/>





 <anonymousIdentification enabled="true"/>
    <profile defaultProvider="ECommerce_ProfileProvider">
      <providers>
        <add name="ECommerce_ProfileProvider" connectionStringName="LocalSqlServer"  applicationName="/"
          type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      </providers>  
      <properties>
        <add name="MemberName"/>
        <add name="Name"/>
        <add name="Address"/>
        <add name="City"/>
        <add name="State"/>
        <add name="Country"/>       
        <add name="PostCode"/>       
        <add name="Email"/>             
      </properties>
    </profile>



Responder

Gostei + 0

23/03/2010

Ademilso Peres

<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
 <configSections>
  <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
   <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
     <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" />
     <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
     <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" />
    </sectionGroup>
   </sectionGroup>
  </sectionGroup>
 </configSections>
 <connectionStrings>
  <remove name="LocalSqlServer" />
  <add name="LocalSqlServer" connectionString="Data Source=10.30.0.500;Initial Catalog=UsuariosProposta;User ID=Teste;Password=123Mudar888" providerName="System.Data.SqlClient" />
  <add name="PropostaConnectionString" connectionString="Data Source=10.30.0.500;Initial Catalog=Proposta;User ID=teste;Password=123Mudar888" providerName="System.Data.SqlClient" />
  <add name="MaterialMasterConnectionString" connectionString="Data Source=10.30.0.500;Initial Catalog=MaterialMaster;User ID=teste;Password=123Mudar888" providerName="System.Data.SqlClient" />
  <add name="NavisionConnectionString" connectionString="Data Source=10.30.0.70,1433;Initial Catalog=Navision_mt_dev;User ID=teste;Password=vamosver" providerName="System.Data.SqlClient" />
  <add name="CRMConnectionString" connectionString="Data Source=10.30.0.70,1433;Initial Catalog=DraegerBrasil_MSCRM;User ID=teste;Password=Abcd1234mudar222" providerName="System.Data.SqlClient" />
 </connectionStrings>
 <system.web>
  <sessionState cookieless="AutoDetect" mode="InProc" />
  <customErrors mode="RemoteOnly" defaultRedirect="Interno.aspx" />
  <roleManager enabled="true" />
  <profile
     enabled="true"
     automaticSaveEnabled="true"
     defaultProvider="SqlProvider">         <providers>
          <clear/>
          <add name="SqlProvider"
               type="System.Web.Profile.SqlProfileProvider"
               connectionStringName="LocalSqlServer"
               applicationName="/"
               description="SqlProfileProvider for SampleApplication" />
        </providers>            <properties>
    <add name="CodigoCRM" type="String" />
    <add name="Telefone" />
    <add name="Nome" />
    <add name="TipoVendedor" />
    <add name="Sigla" />
    <add name="Codigo" type="Int32" />
    <add name="CodigoVendedorDestinatario" type="Int32" />
    <add name="LifeCycleEscolhidos" serializeAs="Binary" type="Configuracao.LifeCycleEscolhidos" />
    <add name="ItensEscolhidos" serializeAs="Binary" type="Configuracao.ItensEscolhidos" />
    <add name="UnidadesEscolhidas" serializeAs="Binary" type="Configuracao.UnidadadesBasicasEscolhidas" />
    <add name="AcessoriosEscolhidos" serializeAs="Binary" type="Configuracao.AcessoriosEscolhidos" />
    <add name="PecasEscolhidas" serializeAs="Binary" type="Configuracao.PecasEscolhidas" />
    <add name="Camadas" serializeAs="Binary" type="Configuracao.ControleCamadas" />
   </properties>
  </profile>
  <identity impersonate="TRUE" userName="teste" password="123Mudar888" />
  <authorization>
   <allow roles="Representante" />
   <allow roles="Vendedor" />
   <allow roles="Gerente" />
   <allow roles="Especialista" />
   <allow roles="Administrador" />
   <allow roles="AdmVendas" />
   <allow roles="Diretor" />
   <deny users="*" />
  </authorization>
  <authentication mode="Forms">
   <forms cookieless="AutoDetect" name="SecureWeb" loginUrl="~/Login.aspx" />   </authentication>
       <membership >
    <providers>
     <clear />
     <add 
  connectionStringName="LocalSqlServer"
  applicationName="/"
  enablePasswordRetrieval="true"
  enablePasswordReset="false"
  requiresQuestionAndAnswer="false"
  requiresUniqueEmail="false"
  passwordFormat="Encrypted"
  maxInvalidPasswordAttempts="25"
  minRequiredNonalphanumericCharacters="0"
  minRequiredPasswordLength="6" name="AspNetSqlMembershipProvider"
  type="System.Web.Security.SqlMembershipProvider" />
    </providers>
   </membership>
  <httpHandlers>
   <remove verb="*" path="*.asmx" />
   <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
   <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
   <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
   <add verb="GET,HEAD,POST" path="*.asbx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
  </httpHandlers>
  <httpModules>
   <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
          <add type="System.Web.SessionState.SessionStateModule"
              name="Session"/>
  </httpModules>
 </system.web>
 
 
 <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <modules>
   <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </modules>
  <handlers>
   <remove name="WebServiceHandlerFactory-Integrated" />
   <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
   <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
   <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </handlers>
 </system.webServer>
 <appSettings>
 </appSettings>
</configuration>
 
Responder

Gostei + 0

24/03/2010

Fabio Mans

O Web.Config parece estar certo.
Se você fizer um teste tipo o abaixo sabe se ele grava?


private void bindProfile()
    {
        txtCCName.Text = Profile.Name;
        txtStreet.Text = Profile.Address;
        txtCity.Text = Profile.City;
        txtState.Text = Profile.State;
        txtPostalCode.Text = Profile.PostCode;
        txtMail.Text = Profile.Email;
        txtCountry.Text = Profile.Country;
       
    }
   
    private void saveProfile()
    {
        Profile.Name = txtCCName.Text;
        Profile.Address  = txtStreet.Text;
        Profile.City = txtCity.Text;
        Profile.State = txtState.Text;
        Profile.PostCode = txtPostalCode.Text;
        Profile.Email = txtMail.Text;
        Profile.Country = txtCountry.Text;
    }
Responder

Gostei + 0

24/03/2010

Ademilso Peres

Na minha maquina de desenvolvimento o site roda normal mas no ambiente de produção existe esse problema de profile, o que pode estar diferente?
Responder

Gostei + 0

25/03/2010

Fabio Mans

O banco é o mesmo? Criou as tabelas na produção?
Responder

Gostei + 0

25/03/2010

Ademilso Peres

Sim o banco de usuarios tambem foi copiado no sqlserver de produção, eu vou verificar se está acessivel.
Responder

Gostei + 0

25/03/2010

Ademilso Peres

Seque abaixo meu teste de conexão comentado. public partial class MasterPage : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
      
             System.Data.SqlClient.SqlConnection conexao2 = new System.Data.SqlClient.SqlConnection();
             conexao2.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
             conexao2.Open();
             Trace.Write("AA",conexao2.Database);  // retornou o nome correto.
             conexao2.Close();              if (Profile == null)    // retorna sempre true
                 Trace.Write("AA","Profile é nulo");              Trace.Write("AA", "Profile.IsDirty " + Profile.IsDirty.ToString());   // Deu erro (NullReferenceException)
Responder

Gostei + 0

26/03/2010

Fabio Mans

Na sua máquina funciona e na produção não, e se você recriar as tabelas novamente?
Já pensou em não utilizar o Profile?

Fabio
Responder

Gostei + 0

26/03/2010

Ademilso Peres

Nem  pensei nisso porque estou usando muitos objetos no profile, se eu não usar profile como poderia fazer? Essa aplicação é copia da sua loja virtual de time de futebol, copiei dos exemplos de suas videos aulas. 
Responder

Gostei + 0

26/03/2010

Fabio Mans

Usar uma tabela mesmo, sem o profile. Utilizando ADO.NET.   Recrie a estrutura na produção novamente.  
Responder

Gostei + 0

27/03/2010

Ademilso Peres

Voce acredita que o problema possa estar em alguma incompatiblidade entre versões do iis?,,,,, no desenvolvimento é windows 2003 server na produção windows 2008 server com iis8
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar