Hej! Hej Jonas, I Page_load tex: Okej. Jonas, Alltså, jag kan inte förklara det bättre. Eller det behövs inte, eftersom jag har fått reda på det jag behövde. Du kollar helt enkelt i din Usercontrol om man är i en viss roll eller authentiserad o väljer då om du skall ha den enable eller disable... Enklaste sättet... finns ju många andra. Jo, det var det jag tänkte. Men UserControlen har inte User-samlingen. Det är bara Page som har det. Därför kan jag inte kolla det i UserControlen. Det går heller inte att skicka med värdet till UserControlen, då värden inte kan sättas dynamiskt, i.e. <Admin:PlaceHere RUNAT="server" boolAuth="<%=ettvarde%>" />. Jonas, Det var nyttig information! Oj. FORMs Authentication, möjlighetsfråga?
Jag undrar om det med ovanstående inloggninsmetod är möjligt att lägga till vissa funktioner på en sida? Hela det konceptet verkar gå ut på att man har inloggning på vissa sidor, och andra inte. Jag vill ha så att man får fler funktioner när man är inloggad.
Idag löser jag det med ett Session("")-värde. Det blir egentligen bara krångligt med ASP.NETs metod, när jag kan göra en inloggningssida som endast sparar ett värde i en Session("")-variabel. Eller?
När man sedan ska visa en inloggninskontroll, kan man bara skriva:
<code>
<%If Session("Login") <> "" Then%>
Ta bort
<%End If%>
</code>
Detta kanske är en väldigt ASP-likt lösningssätt?Sv: FORMs Authentication, möjlighetsfråga?
Du får nog förklara lite mer vad du vill. För jag ser inte vad du har för problem med att använda Form och inte kunna göra det du vill göra. Även i vanliga ASP brukar man ju kolla på nått sätt om man var inloggad eller ej, typ om en sessions varabel var satt. De sidor som hade kollen var de sidor man inte kom åt utan att vara inloggad, de man struntade i la man inte kontrollen på.
Samma med forms, bara att forms sköter detta åt dig du slipper sätta kollen på varje sida.
Så hur du än löste det i vanliga ASP kan du även lösa det på samma sätt i ASP .Net även om du nyttjar Form Authentication.
Mvh JohanSv: FORMs Authentication, möjlighetsfråga?
if ( null != Session["login"] )
{
hyperlink1.Visible = true;
}
om du vill göra det för en repeater eller datagrid kan du hooka eventet ItemDataBound för kontrollen istället.
Sv: FORMs Authentication, möjlighetsfråga?
Det var det jag undrade.
Varför ska man då göra <location>-taggar i web.config om man bara kan utföra kollen som vanligt? Är det endast för att man kan begränsa flera sidor på en gång?Sv: FORMs Authentication, möjlighetsfråga?
Ser att du lagt in mer förklaring till din post nu...
Du bör inte köra på gamla sättet :-) utan på de mer nya. Du har många val att göra det flexiblare utan att blanda in Sessions etc...
först när du är inloggad med Form Authentication, så fungerar det precis som med din Session grej, bara den att kontrollen skrev innan du når själva aspx sidan och baserar sig på en cookie istället för en session.
Du kan i olika mappar lägga en web.config som säger att allt i mappen är accessbart utan att man är inloggad. Du kan även i web.config lägga till som du sa <location> för att tillåta vissa filer eller mappar.
Du har metoder som gör att du kan kolla om personen är autentiserad.
IsAuthenticated
du kan även använda roller för att göra större stöd för vad man får göra och inte göra.
genom IsInRole kontroll.
På så vis kan du säga är man en Admin så syns knapp 1, är man en Guest knapp 2. etc...
Mvh JohanSv: FORMs Authentication, möjlighetsfråga?
Men om du är nyfiken, så är det som så att det ska vara en sida till en "klan" till ett spel. Där ska gästerna kunna titta lite på forum och så, men användare och admin ska kunna göra fler saker. Därför behöver jag kunna lägga till vissa funktioner och så är en admin/användare är inloggad. Det föreslår du alltså att jag gör med User.Identity.IsAuthenticated?
Hur kan jag kolla om en användare är inloggad i en UserControl? Eftersom det är Page som har User, så lyckas jag inte kolla det i UserControlen. Tänkte att jag skulle slippa att kopiera codebehindkod, så att UserControlen lägger till det som behövs. Men dat kanske inte går då?
Tack för intresse och övrig information!Sv: FORMs Authentication, möjlighetsfråga?
Mvh JohanSv: FORMs Authentication, möjlighetsfråga?
Sv: FORMs Authentication, möjlighetsfråga?
Finns massor med olika sätt att lösa även det problemet. Du kan exempelvis när du precis loggat in skapa upp en massa roller och signa dessa. Dessa roller kan du sedan kolla när du vill. Även om usercontrollen skulle läggas in dynamiskt så kan du i dess Page_Load (om du kör user controls) kolla om man är i en viss roll eller ej o strya dess presentation. Du kan även där kolla om man är inloggad eller ej. Dock kallas det inte dynamiska kontroller när man typar dem i htmlsidan som syntaxen ovan.
Du kan ex mkt väl skriva som du gör ovan, kräver dock mer kunskape rom control bygget. Du kan även ha parametrar där du redan från htmksidan kan ange vilka roller som får access till den och i kontrollen kolla om du har dessa roller.
<Admin:PlaceHere RUNAT="server" Roles="Admin,PowerUser" />.
I kontrollen kolla om man är med i rollen Admin eller PowerUser om inte rita inte ut den.
Ett effektict flöde.
login
--------
Verifiera
sätt Authentication
sätt upp de roller man har (kan hämtas från Datakälla eller styras web.config)
redirect till huvudsidan
-------
huvudsidan
-------------
Sätt upp kontrollerna, kolla om man är inloggad i de kontroller som kräver denna nivån.
Sätt upp kontroller, kolla om man är med i spec roll för att visa olika funktioner.
Kontrollerna.
-------------
Ha attribut som säger vilka roller den kräver.
Ha kontroller om man är inloggad eller ej för att visa eller inte visa kontrollen.
Ha kontroller som direkt kollar roller som hårdkodas (för att slippa speca upp detta när man skapar
kontrollen på htmlsidan eller dynamiskt.
+ massa olika lösningar...
Det viktiga är att veta vilka krav man har, hur interactionen skall flöda m.m.
Det går att göra på "gamla" viset men i mina ögon är det mer en ful och klumpig lösning som bara kommer generera de vanliga problemen man har med vanliga ASP, minimerad redundans, man tappar en viss kontroll för att kontrollerna(inte controls utan valideringarna) måste hela tiden byggas där de skall utföras. Att istället ha ett gemensamt sätt att stryra detta mot en komponent för spårbarheten bättre och underhållet ökar m.m.
Mvh JohanSv: FORMs Authentication, möjlighetsfråga?
Men vad jag menar är att jag inte lyckas kontrollera om användaren är inloggad i en UserControl, då denna inte inne har User.Identity.IsAuthenticated-värdet. Detta verkar inte finnas i System.Web.UI.UserControl, men det finns i System.Web.UI.Page. Alltså, hela User.-samlingen finns inte i UC.
Någon idé?Sv: FORMs Authentication, möjlighetsfråga?
Jag hittade det.
Tack grabbar, nu har jag fått svar på alla frågor om det.
Bara en liten fråga om PelleSoft också: Finns det något sätt att se ALLA poster som jag har gjort? Selektering visar inte alla.