MizzKMedlem sedan juni 2003410 inlägg Har gjort en login med hjälp av web.config har jag satt upp regler för olika användare..användarna hämtas i db. Detta fungerar perfekt så länge man loggar in direkt på sidan man vill in på. (dvs om order är "låst" kommer en loginruta in och man loggar in den vägen)
Men jag använder mig av iframe och default.aspx fungerar som grund till allt. Jag placerar login rutan på min default.aspx sida under navigerings menyn.
Men när användre kommmer och loggar in på den loginrutan så ser det ut som om d är inloggade och logut rutan kommer(login/ut ligger på samma sida i olika paneler). Men sidorna inne i iframe fattar inte detta vilket innebär att man inte får tillgång till sidorna man bör får tillgång till.
ngn som vet vad detta kan bero på? eller ngt som arbeteat med forms Authentication och frames eller iframes.
PDahlenMedlem sedan apr. 2004778 inlägg Jag har två sajter och ett administrationsverktyg som använder Forms Authentication och frames. Funkar alldeles utmärkt.
Enda gången det inte har funkat var när jag på ett ställe skulle in i en SSL-skyddad del. Den delen hade inte exakt samma domännamn och då funkade inte authenticeringen längre.
Om sidorna i din iframe ligger i samma kataloger och inte anropas med några skillnader i url:en så ska det funka. Men om du t.ex. har gått in med https://www.sajt.se från början och kör hela länkar till din iframe, t.ex. http://sajt.se/ så funkar det inte.
När du är inloggad så kolla Egenskaper på både Loginsidan och sidan i din iframe.
MizzKMedlem sedan juni 2003410 inlägg hur har du gjort då? jag har allt liggande på min datorn kör iis här.. defult ligger i rooten mappen pizza, skyddad sida order.aspx ligger i samma mapp, wwwroot/pizza/admin.
PDahlenMedlem sedan apr. 2004778 inlägg Jag gör inget speciellt. Jag har rooten med vissa filer, jag har mappar med andra filer. Om jag t.ex. länkar från default.aspx använder jag "projmapp/project.aspx". Om jag länkar tillbaka använder jag "../default.aspx".
En skillnad från din lösning är dock att jag har alla skyddade filer i en mapp och så har jag skyddat mappen genom att ange den i webconfig
Hur ser dina länkar ut?
MizzKMedlem sedan juni 2003410 inlägg PDahlen eller ngn kan man få se login proceduren.. tror d e min som e fel på(login.aspx).. hittar heller ingen bra artikel hur man gör..
MizzKMedlem sedan juni 2003410 inlägg har löst föregående problemet nu! men har istället ett nytt problem.. den fattar inte vilken behörighet som användaren som loggar in har samt vilken användare som loggat in skrivs ej ut!
Har i db "tabell användare" som innehåller: anvNamn, lösenord och anvgrupp.
global.asax
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
If Not HttpContext.Current.User Is Nothing Then
If HttpContext.Current.User.Identity.IsAuthenticated Then
If TypeOf HttpContext.Current.User.Identity Is FormsIdentity Then
Dim id As System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity, FormsIdentity()
Dim ticket As FormsAuthenticationTicket = id.Ticket
Dim MyRoles(2) As String
MyRoles(0) = "admin"
MyRoles(1) = "user"
HttpContext.Current.User = New System.Security.Principal.GenericPrincipal(id, MyRoles)
End If
End If
End If
Login.ascx
Sub Login_Click(ByVal Src As Object, ByVal E As EventArgs)
If Page.IsValid Then
FormsAuthentication.Initialize()
Dim ticket As FormsAuthenticationTicket
Dim strcookie As String
Dim cookie As HttpCookie
Dim strConn As String = ConfigurationSettings.AppSettings("Connstr").Replace("%MAPPATH%", Server.MapPath(" "))
Dim Conn As New OleDbConnection(strConn)
Conn.Open()
Dim strSQL As String = "SELECT losen FROM anvandare WHERE anvnamn = '" & txtanv.Text & "'"
Dim Cmd As New OleDbCommand(strSQL, Conn)
Dim Dr As OleDbDataReader = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
If Dr.Read() Then
ticket = New FormsAuthenticationTicket(1, txtanv.Text, DateTime.Now(), _
DateTime.Now.AddMinutes(30), spara.Checked, "your custom data")
strcookie = FormsAuthentication.Encrypt(ticket)
cookie = New HttpCookie(FormsAuthentication.FormsCookieName(), strcookie)
If (spara.Checked) Then cookie.Expires = ticket.Expiration
cookie.Path = FormsAuthentication.FormsCookiePath()
Response.Cookies.Add(cookie)
Dim strRedirect As String
strRedirect = Request("ReturnURL")
If strRedirect <> "" Then
Response.Redirect(strRedirect, True)
Else
strRedirect = "default.aspx"
Response.Redirect(strRedirect, True)
End If
Else
Response.Redirect("logon.aspx", True)
End If
End If
End Sub
loggaut.ascx
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Me.IsPostBack Then
lbluser.Text = HttpContext.Current.User.Identity.Name
End If
End Sub
Sub Logout_Click(ByVal Src As Object, ByVal E As EventArgs)
FormsAuthentication.SignOut()
Server.Transfer("default.aspx")
End Sub
var e felet?