BlogEngine.Net 1.4 and SQL Providers

Discussion in 'ASP.NET Starter Kits' started by mheidemann, Oct 2, 2008.

  1. Hello all.. I just installed v1.4 on my site here and everything seems to be working well. However, I wanted to have the blog site use my asp.net user names and logins.

    I followed a demo on how to do that but when I make the changes to the web.config I am not able to log into the page. Does anyone have exp with this tool and setting it up this way?

    Just in case, here are the two sections in the web.config that I made changes to. Basically swapping out the default providers and that should have done the trick according to the demo.

    Thanks for the help,

    Matt

    <membership defaultProvider="SqlMembershipProvider">
    <providers>
    <clear/>
    <add name="XmlMembershipProvider" type="BlogEngine.Core.Providers.XmlMembershipProvider, BlogEngine.Core" description="XML membership provider" passwordFormat="Hashed"/>
    <add name="SqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
    <add name="DbMembershipProvider" type="BlogEngine.Core.Providers.DbMembershipProvider, BlogEngine.Core" passwordFormat="Hashed" connectionStringName="BlogEngine"/>
    </providers>
    </membership>

    <roleManager defaultProvider="DbRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName=".BLOGENGINEROLES">
    <providers>
    <clear/>
    <add name="SqlRoleProvider" type="BlogEngine.Core.Providers.XmlRoleProvider, BlogEngine.Core" description="XML role provider"/>
    <add name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
    <add name="DbRoleProvider" type="BlogEngine.Core.Providers.DbRoleProvider, BlogEngine.Core" connectionStringName="BlogEngine"/>
    </providers>
    </roleManager>
     
  2. Hi,
    I haven't messed with that but it appears to be giving you a choice of 3 providers.
    If you're using SQL Server for your membership I'm guessing there are sections in that to specify your SQL connection.
    The only way I can give you more help will be if I D/L it and take a look.
    Please read any readme type info related to the providers and then post again if you still can't get it working.
    Salute,
    Mark
     
  3. Hey Mark,

    So for the three providers.. If I set it to use the DBBlogProvider(NoProblem)..It is when I switch to the SQLProvider that it gives me no response on the login..

    Here is a short little video describing how to set this up. Although, I believe he is using a slighty ealier version than the current.
    http://nyveldt.com/blog/post/BlogEngineNET-Screencast-SQL-Membership-and-Roles-Providers.aspx


    And here is the complete web.config if that helps.


    <configuration>
    <configSections>
    <sectionGroup name="BlogEngine">
    <section name="blogProvider" requirePermission="false" type="BlogEngine.Core.Providers.BlogProviderSection, BlogEngine.Core" allowDefinition="MachineToApplication" restartOnExternalChanges="true"/>
    </sectionGroup>
    </configSections>


    <providers>
    <add name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/>
    <add name="DbBlogProvider" type="BlogEngine.Core.Providers.DbBlogProvider, BlogEngine.Core" connectionStringName="BlogEngine" />
    </providers>
    </blogProvider>
    </BlogEngine>
    <!-- configSource is not implemented in Mono.
    <connectionStrings configSource="sql.config" />
    -->
    <connectionStrings>
    <clear/>
    <add name="LocalSqlServer" connectionString="dummy"/>
    <!-- Mono complains if LocalSqlServer isn't specified -->
    <add name="BlogEngine" connectionString="Data Source=sql2k509.discountasp.net;Initial Catalog=mySQLDataBase;Persist Security Info=True;User ID=myUser;Password=myPassword" providerName="System.Data.SqlClient"/>
    </connectionStrings>

    <appSettings>
    <add key="BlogEngine.FileExtension" value=".aspx"/>
    <!-- You can e.g. use "~/blog/" if BlogEngine.NET is not located in the root of the application -->
    <add key="BlogEngine.VirtualPath" value="~/"/>
    <!-- The regex used to identify mobile devices so a different theme can be shown -->
    <add key="BlogEngine.MobileDevices" value="(nokia|sonyericsson|blackberry|samsung|sec\-|windows ce|motorola|mot\-|up.b|midp\-)"/>
    <!-- The name of the role with administrator permissions -->
    <add key="BlogEngine.AdminRole" value="Administrators"/>
    <!--This value is to provide an alterantive location for storing data.-->
    <add key="StorageLocation" value="~/App_Data/"/>
    <!--A comma separated list of script names to hard minify. It's case-sensitive. -->
    <add key="BlogEngine.HardMinify" value="blog.js,widget.js,WebResource.axd"/>
    </appSettings>

    <system.web>
    <compilation debug="true">
    <assemblies>
    <add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    </assemblies>
    </compilation>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto"/>
    <httpRuntime enableVersionHeader="false" useFullyQualifiedRedirectUrl="true" maxRequestLength="16384" executionTimeout="3600" requestLengthDiskThreshold="16384"/>
    <machineKey validationKey="D9F7287EFDE8DF4CAFF79011D5308643D8F62AE10CDF30DAB640B7399BF6C57B0269D60A23FBCCC736FC2487ED695512BA95044DE4C58DC02C2BA0C4A266454C" decryptionKey="BDAAF7E00B69BA47B37EEAC328929A06A6647D4C89FED3A7D5C52B12B23680F4" validation="SHA1" decryption="AES"/>

    <authentication mode="Forms">
    <forms timeout="129600" name=".AUXBLOGENGINE" protection="All" slidingExpiration="true" loginUrl="~/login.aspx" cookieless="UseCookies"/>
    </authentication>

    <pages enableSessionState="false" enableViewStateMac="true" enableEventValidation="true">
    <controls>
    <add namespace="Controls" tagPrefix="blog"/>
    </controls>
    </pages>

    <customErrors mode="Off">
    <error statusCode="404" redirect="~/error404.aspx"/>
    </customErrors>

    <membership defaultProvider="DbMembershipProvider">
    <providers>
    <clear/>
    <add name="XmlMembershipProvider" type="BlogEngine.Core.Providers.XmlMembershipProvider, BlogEngine.Core" description="XML membership provider" passwordFormat="Hashed"/>
    <add name="SqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
    <add name="DbMembershipProvider" type="BlogEngine.Core.Providers.DbMembershipProvider, BlogEngine.Core" passwordFormat="Hashed" connectionStringName="BlogEngine"/>
    </providers>
    </membership>

    <roleManager defaultProvider="DbRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName=".BLOGENGINEROLES">
    <providers>
    <clear/>
    <add name="XmlRoleProvider" type="BlogEngine.Core.Providers.XmlRoleProvider, BlogEngine.Core" description="XML role provider"/>
    <add name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="BlogEngine" applicationName="BlogEngine"/>
    <add name="DbRoleProvider" type="BlogEngine.Core.Providers.DbRoleProvider, BlogEngine.Core" connectionStringName="BlogEngine"/>
    </providers>
    </roleManager>

    <siteMap defaultProvider="PageSiteMap" enabled="true">
    <providers>
    <add name="PageSiteMap" description="The site map provider that reads in the .sitemap XML files." type="BlogEngine.Core.Web.Controls.PageSiteMap, BlogEngine.Core"/>
    <add name="SecuritySiteMap" description="Used for authenticated users." type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" securityTrimmingEnabled="true" siteMapFile="Web.sitemap"/>
    </providers>
    </siteMap>

    <httpModules>
    <add name="WwwSubDomainModule" type="BlogEngine.Core.Web.HttpModules.WwwSubDomainModule, BlogEngine.Core"/>
    <add name="UrlRewrite" type="BlogEngine.Core.Web.HttpModules.UrlRewrite, BlogEngine.Core"/>
    <add name="CompressionModule" type="BlogEngine.Core.Web.HttpModules.CompressionModule, BlogEngine.Core"/>
    <add name="ReferrerModule" type="BlogEngine.Core.Web.HttpModules.ReferrerModule, BlogEngine.Core"/>
    <!--Remove the default ASP.NET modules we don't need-->
    <remove name="PassportAuthentication"/>
    <remove name="Profile"/>
    <remove name="AnonymousIdentification"/>
    </httpModules>

    <httpHandlers>
    <add verb="*" path="file.axd" type="BlogEngine.Core.Web.HttpHandlers.FileHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="image.axd" type="BlogEngine.Core.Web.HttpHandlers.ImageHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="syndication.axd" type="BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="sitemap.axd" type="BlogEngine.Core.Web.HttpHandlers.SiteMap, BlogEngine.Core" validate="false"/>
    <add verb="*" path="trackback.axd" type="BlogEngine.Core.Web.HttpHandlers.TrackbackHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="pingback.axd" type="BlogEngine.Core.Web.HttpHandlers.PingbackHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="opensearch.axd" type="BlogEngine.Core.Web.HttpHandlers.OpenSearchHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="metaweblog.axd" type="BlogEngine.Core.API.MetaWeblog.MetaWeblogHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="rsd.axd" type="BlogEngine.Core.Web.HttpHandlers.RsdHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="css.axd" type="BlogEngine.Core.Web.HttpHandlers.CssHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="js.axd" type="BlogEngine.Core.Web.HttpHandlers.JavaScriptHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="rating.axd" type="BlogEngine.Core.Web.HttpHandlers.RatingHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="opml.axd" type="BlogEngine.Core.Web.HttpHandlers.OpmlHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="blogml.axd" type="BlogEngine.Core.Web.HttpHandlers.BlogMLExportHandler, BlogEngine.Core" validate="false"/>
    <add verb="*" path="sioc.axd" type="BlogEngine.Core.Web.HttpHandlers.Sioc, BlogEngine.Core" validate="false"/>
    <add verb="*" path="apml.axd" type="BlogEngine.Core.Web.HttpHandlers.Apml, BlogEngine.Core" validate="false"/>
    <add verb="*" path="foaf*.axd" type="BlogEngine.Core.Web.HttpHandlers.Foaf, BlogEngine.Core" validate="false"/>
    </httpHandlers>
    </system.web>
    </configuration>
     
  4. Hi,
    It looks like the membership section should specify your SQL connection and DB:


     
  5. No, the website is still running and there are no errors. It just doesn't validate a user loging on. When I try to log on, lets say with Admin and Admin, it says that the login atempt wass unsuccessful.

    Itried with an account that was in the asp table and one that was in the blogengine table to make sure that it was not using the wrong conection. It works when I switch back to the blogengine provider and I get the failed login when I switch to the sql provider.

    I also went into the SQL management to make sure that the user in the connection string has access to the asp tables.
     
  6. Bruce

    Bruce DiscountASP.NET Staff

    if you get login unsuccessful, it means blog engine is connecting to some database (rather than no connection).

    I would check your database / connection string to make sure everything is in order.

    Bruce

    DiscountASP.NET
    www.DiscountASP.NET
     
  7. Well, there's the catch right. It is connecting to something but I have no idea what, if not my SQL database. The string is correct as I only have one database.
     
  8. Hi,
    If you don't get this going and you'd like me to put hands on it just let me know.
    I'd rather help than see you pull your hair out over it. [​IMG]
    This is something I do for a lot of accounts here, they will all confirm that I can be fully trusted.
    My contact page is: http://msftwise.com/contact/
    Salute,
    Mark
     
  9. Ya.. that is the code after I switched it back..sorry.

    I had replaced "DbRoleProvider" with "SQLRoleProvider" and also switched "DbMembershipProvider" with "SqlMembershipProvider". It looked like teh code in the original post. Still didn't work.
     
  10. Bruce

    Bruce DiscountASP.NET Staff

    do you eventually get an error if you let it run?


    Bruce

    DiscountASP.NET
    www.DiscountASP.NET
     

Share This Page