Avatar billede -xyz- Nybegynder
21. april 2006 - 22:06 Der er 21 kommentarer og
1 løsning

Forms authentication

Hej, jeg har et problem, som umiddelbart virker lidt mærkeligt, jeg har en login side, som bruger formsauthentication, eller det skulle den!
men den vil simpelthen ikke logge mig ind jeg bruger de inbyggede login forms osv.

og så skal det lige siges at min bruger er oprettet med CreateUser controllen, og når jeg åbner databasen (access) kan jeg se at alt er blevet oprettet, men den vil STADIG ikke logge mig ind, nogen idéer?

Kenneth
Avatar billede snepnet Nybegynder
21. april 2006 - 22:23 #1
hvordan konstaterer du at du ikke bliver logget ind?
må jeg se din konfigurationsfil (web.config).
mvh
Avatar billede -xyz- Nybegynder
21. april 2006 - 22:58 #2
Ja, det må du gerne, well jeg bruger loginStatus control til at konstatere at jeg ikke bliver logget ind.

Web.Config

<?xml version="1.0"?>
<!--
    Note: As an alternative to hand editing this file you can use the
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in
    machine.config.comments usually located in
    \Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <!--
        The configSections define a section for ASP.NET Atlas.
  -->
    <configSections>
        <sectionGroup name="microsoft.web" type="Microsoft.Web.Configuration.MicrosoftWebSectionGroup">
            <section name="converters" type="Microsoft.Web.Configuration.ConvertersSection" requirePermission="false"/>
            <section name="webServices" type="Microsoft.Web.Configuration.WebServicesSection" requirePermission="false"/>
            <section name="authenticationService" type="Microsoft.Web.Configuration.AuthenticationServiceSection" requirePermission="false"/>
            <section name="profileService" type="Microsoft.Web.Configuration.ProfileServiceSection" requirePermission="false"/>
        </sectionGroup>
    </configSections>
    <!--
      The microsoft.web section defines items required for the Atlas framework.
  -->
    <microsoft.web>
        <converters>
            <add type="Microsoft.Web.Script.Serialization.Converters.DataSetConverter"/>
            <add type="Microsoft.Web.Script.Serialization.Converters.DataRowConverter"/>
            <add type="Microsoft.Web.Script.Serialization.Converters.DataTableConverter"/>
        </converters>
        <webServices enableBrowserAccess="true"/>
        <!--
      Uncomment this line to enable the authentication service.
    <authenticationService enabled="true" />
    -->
        <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
        and modified in Atlas applications, you need to add each property name to the setProperties and
        getProperties attributes.  If you intend for all properties to be available, you can use "*"
        as a shorthand rather than enumerating each property  -->
        <!-- 
    <profileService enabled="true"
                    setProperties="propertyname1;propertyname2"
                    getProperties="propertyname1;propertyname2" />
    -->
    </microsoft.web>
    <appSettings/>
    <connectionStrings>
 
    <add name="AccessFileName" connectionString="~/App_Data/ASPNetDB.mdb" providerName="System.Data.OleDb"/>
</connectionStrings>
    <system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="xyz3d.dk" />
  <pages>
            <controls>
                <add namespace="Microsoft.Web.UI" assembly="Microsoft.Web.Atlas" tagPrefix="atlas"/>
                <add namespace="Microsoft.Web.UI.Controls" assembly="Microsoft.Web.Atlas" tagPrefix="atlas"/>
            </controls>
        </pages>
        <!--
          Set compilation debug="true" to insert debugging
          symbols into the compiled page. Because this
          affects performance, set this value to true only
          during development.
    -->
        <compilation debug="false">
            <buildProviders>
                <add extension=".asbx" type="Microsoft.Web.Services.BridgeBuildProvider"/>
            </buildProviders>
        </compilation>
        <!--
          ASMX is mapped to a new handler so that proxy javascripts can also be served.
    -->
        <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" type="Microsoft.Web.Services.ScriptHandlerFactory" validate="false"/>
            <!--
          The MultiRequestHandler enables multiple requests to be handled in one
          roundtrip to the server. Its use requires Full Trust.
      -->
            <add verb="*" path="atlasbatchcall.axd" type="Microsoft.Web.Services.MultiRequestHandler" validate="false"/>
            <add verb="*" path="atlasglob.axd" type="Microsoft.Web.Globalization.GlobalizationHandler" validate="false"/>
            <!--
          The IFrameHandler enables a limited form of cross-domain calls to 'Atlas' web services.
          This should only be enabled if you need this functionality and you're willing to expose
          the data publicly on the Internet.
          To use it, you will also need to add the attribute [WebOperation(true, ResponseFormatMode.Json, true)]
          on the methods that you want to be called cross-domain.
          This attribute is by default on any DataService's GetData method.
         
      <add verb="*" path="iframecall.axd" type="Microsoft.Web.Services.IFrameHandler" validate="false"/>
      -->
            <add verb="*" path="*.asbx" type="Microsoft.Web.Services.ScriptHandlerFactory" validate="false"/>
        </httpHandlers>
        <httpModules>
            <add name="ScriptModule" type="Microsoft.Web.Services.ScriptModule"/>
            <add name="BridgeModule" type="Microsoft.Web.Services.BridgeModule"/>
            <add name="WebResourceCompression" type="Microsoft.Web.Services.WebResourceCompressionModule"/>
        </httpModules>
        <!--
          The <authentication> section enables configuration
          of the security authentication mode used by
          ASP.NET to identify an incoming user.
      -->
    <authentication mode="Forms">
      <forms name="XyzLogin" loginUrl="Logind.aspx" protection="All" timeout="60" />
     
    </authentication>
    <membership defaultProvider="AccessMembershipProvider">
      <providers>
        <clear/>
        <add name="AccessMembershipProvider"
                    type="Samples.AccessProviders.AccessMembershipProvider, SampleAccessProviders"
                    connectionStringName="AccessFileName"
                    enablePasswordRetrieval="false"
                    enablePasswordReset="false"
                    requiresUniqueEmail="false"
                    requiresQuestionAndAnswer="false"
                    minRequiredPasswordLength="1"
                    minRequiredNonalphanumericCharacters="0"
                    applicationName="SampleSite"
                    hashAlgorithmType="SHA1"
                    passwordFormat="Hashed"/>
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="AccessRoleProvider" cacheRolesInCookie="true" cookieName=".ASPXROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
      <providers>
        <add name="AccessRoleProvider"
                    type="Samples.AccessProviders.AccessRoleProvider, SampleAccessProviders"
                    connectionStringName="AccessFileName"
                    applicationName="SampleSite"/>
      </providers>
    </roleManager>
    <profile enabled="true" defaultProvider="AccessProfileProvider">
      <providers>
        <add name="AccessProfileProvider"
                    type="Samples.AccessProviders.AccessProfileProvider, SampleAccessProviders"
                    connectionStringName="AccessFileName"
                    applicationName="SampleSite"
                    description="Stores and retrieves profile data from an $safeprojectname$ database."/>
      </providers>
      <properties>
        <add name="FriendlyName" type="string" allowAnonymous="true" serializeAs="String"/>
        <add name="Height" type="int" allowAnonymous="true" serializeAs="String"/>
        <add name="Weight" type="int" allowAnonymous="true" serializeAs="Xml"/>
      </properties>
    </profile>
    <anonymousIdentification enabled="true" cookieName=".ASPXANONYMOUS" cookieTimeout="100000" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="None" domain=""/>
    <webParts>
      <personalization defaultProvider="AccessPersonalizationProvider">
        <providers>
          <add name="AccessPersonalizationProvider"
                        type="Samples.AccessProviders.AccessPersonalizationProvider, SampleAccessProviders"
                        connectionStringName="AccessFileName"
                        applicationName="SampleSite"/>
        </providers>
      </personalization>
    </webParts>
     
   
        <!--
          The <customErrors> section enables configuration
          of what to do if/when an unhandled error occurs
          during the execution of a request. Specifically,
          it enables developers to configure html error pages
          to be displayed in place of a error stack trace.
-->
   



  </system.web>
    <!-- Uncomment this if your site globally denies access to anonymous users.  The
      authentication service and profile service are located under the virtual
      "ScriptServices" directory.  Since you normally call the authentication web
      service with an un-authenticated user, the following location tag can be used
      to grant access to anonymous users.  If you use anonymous profile support
      you will also need to grant access to anonymous users. -->
    <!--
  <location path="ScriptServices">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>   
  </location>
  -->
</configuration>
Avatar billede snepnet Nybegynder
21. april 2006 - 23:03 #3
har du forskellige resultater på siden afhængig af om du skriver et rigtigt eller forkert password.
mvh
Avatar billede -xyz- Nybegynder
21. april 2006 - 23:08 #4
nej, jeg får standard svaret: fra loginControl, om at jeg ikke kan logges ind
Avatar billede snepnet Nybegynder
21. april 2006 - 23:11 #5
både med rigtig og forkert adgangskode?
.... er du 100 på at du benytter den rigtige kode så?
mvh
Avatar billede -xyz- Nybegynder
21. april 2006 - 23:21 #6
ja, jeg er 1000% har lige oprettet en bruger, og jeg bliver automatisk logget ind efter opret,  og når jeg så logger ud igen, kan jeg bare ikke logge ind, heller ikke selv om jeg bruger denne i login autheticate eventet:

FormsAuthentication.RedirectFromLoginPage("Kenneth", false);
Avatar billede snepnet Nybegynder
21. april 2006 - 23:27 #7
du skal ikke bruge koden til noget - det skal fungere uden.
hvis du bliver logget ind efter opret synes det jo at virke..... men ... jeg kan ikke se at dit site er restricted. har ud foldere du har sat restiktioner på.
mvh
Avatar billede -xyz- Nybegynder
21. april 2006 - 23:30 #8
nej, ingen, ogdet mærkelige er at det virker på den version der ligger uploadet på www.kenned.dk bare brug random navn og pass, den cheker ikke
Avatar billede -xyz- Nybegynder
21. april 2006 - 23:31 #9
Jeg er klar over at den skal virke uden koden, men, det siger da noget at den ikke virker med heller...
Avatar billede snepnet Nybegynder
21. april 2006 - 23:37 #10
mmm... hvis den ikke checker noget - kan man vel dårligt sige at det virker. virker de forskelligt med nøjagtig samme kode?
mvh
Avatar billede -xyz- Nybegynder
21. april 2006 - 23:43 #11
Øh, nej det gør den ikke (Det er ved at blive sent åbentbart)men jeg forstår det ikke, for når jeg bruger  FormsAuthentication.RedirectFromLoginPage("Kenneth", false);
burde den vise siden som værende logget ind, og det gør den ikke, det er til at blive sindsyg af, når jeg ikke kan lokalisere problemet
Avatar billede snepnet Nybegynder
22. april 2006 - 00:28 #12
På hvilket tidspunkt kører du koden?
mvh
Avatar billede -xyz- Nybegynder
22. april 2006 - 00:30 #13
Nu har jeg prøvet at oprette nye sider, og så importere web.config og db + mine providere, og der sker nøjagtigt det samme som før jeg kan sagtens skrive til db, men ikke læse, den checkede heller ikke om brugernavnet eksisterede, men overskrev det bare, kan det være at den ikke kan læse fra databasen?

Og kan det evt. være min provider den er gal med?
Avatar billede snepnet Nybegynder
22. april 2006 - 00:35 #14
well ... det lyder lidt underligt - prøv at lav en side hvor du blot skriver brugerene ud - sådan her:

GridView gv = new GridView();
gv.DataSoure = Membership.GetAllUsers()
gv.DataBind();
form1.Controls.Add(gv);

mvh
Avatar billede -xyz- Nybegynder
22. april 2006 - 00:49 #15
Arg det kan den godt, jeg får alle resultater ud.
Aner ikke havd der er i vejen
Avatar billede snepnet Nybegynder
22. april 2006 - 01:23 #16
hm... må jeg se komplet kode til login-siden (både aspx og cs)
mvh
Avatar billede -xyz- Nybegynder
22. april 2006 - 01:50 #17
Ja, den ligger her, håber på du bliver lidt klogere på den end jeg er

http://www.kenned.dk/Website2.rar
Avatar billede snepnet Nybegynder
23. april 2006 - 18:35 #18
hmm... det gjorde jeg så ikke, men der var vist nogle gode argumenter for at fjerne accessproviderene fra den endelige version ;o)
ej - faktum er at det heller ikke virker her, og at jeg ikke har nogen anelse om hvorfor....  det virker lidt underligt.
understøtter din host ikke sql express?
mvh
Avatar billede snepnet Nybegynder
23. april 2006 - 18:54 #19
du burde kunne komme igennem sådan her (i en LogginIn handler på login kontrollen).

protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
{
    MembershipUser user = Membership.GetUser(this.Login1.UserName);
    if (user != null && Membership.ValidateUser(user.UserName, this.Login1.Password))
    {
        FormsAuthentication.Authenticate(user.UserName, this.Login1.Password);
        FormsAuthentication.RedirectFromLoginPage(user.UserName, false);
    }
}

og sådan en her på kontrollen:

<asp:Login ID="Login1" runat="server" CreateUserText="Ingen bruger?" CreateUserUrl="~/create.aspx"
    OnLoggingIn="Login1_LoggingIn" >
</asp:Login>

mvh
Avatar billede -xyz- Nybegynder
23. april 2006 - 20:27 #20
Hej der er sket det mærkeligste, jeg tænkte nu prøver jeg igen, og så oprettede jeg en helt blank solution og prøvede igen, og nu virker lortet, jeg har ingen anelse om hvorfor, eller hvorfor ikke. men det virker mystisk nok...
Har haft sagen oppe at vende hos Scott Guthrie Fra Microsofts Asp.net team, og han har heler ingen anelse om hvorfro det ikke virkede, men jeg var ikke den eneste der havde det problem kunne jeg se.

Lukker, tak for hjælpen snepnet, hvis du vil have points har du mere end fortjent dem, så bare læg et svar.
Avatar billede snepnet Nybegynder
23. april 2006 - 22:19 #21
hehe ... ja jeg har også googlet lidt :o) - og prøvede faktisk lidt af hvert her, men uden held. vældig besynderligt.
mvh
Avatar billede codegirl Nybegynder
02. maj 2006 - 16:02 #22
Hej

Det ser ikke ud til at du har sat applicationName i din Memebershipprovider i web.config. har læst at det godt kan give problemer.

mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester