Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Impersonation i vb.net/asp.net (hemsida för att resetta lösen)

Postades av 2006-08-21 09:44:06 - Christian Hoffman, i forum vb.net, Tråden har 3 Kommentarer och lästs av 812 personer

Hejsan. Jag försöker få gjort en hemsida där användare med rätt behörighet (t.ex. helpdesk) kan resetta andra folks lösenord i ADt. Från min burk fungerar det utmärkt men det beror nog mest på att jag kör IIS själv. Har läst på diverse forum och sidor att min lösning troligtvis inte fungerar när man har hemsidan på en fristående IIS-server i domänen och att jag bör använda impersonation men jag har inte lyckats få ihop detta. Hittills så ser min kod ut såhär:

Imports System
Imports System.DirectoryServices
Imports System.Web.Caching

Partial Class _Default
Inherits System.Web.UI.Page
' Dim UserEntry As New System.DirectoryServices.DirectoryEntry
Dim UserEntry As New DirectoryEntry
'Dim UserPath As String

Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim AuthUser, AuthPass, Domain As String
'Dim UserEntry As New System.DirectoryServices.DirectoryEntry

' authLDAP(AuthUser, AuthPass)
AuthUser = txtUsername.Text
AuthPass = txtPassword.Text
Domain = txtDomain.Text
Cache("UserName") = AuthUser
Cache("UserPsw") = AuthPass
Dim oOU As New System.DirectoryServices.DirectoryEntry("LDAP://test.hoff.se", AuthUser, AuthPass, AuthenticationTypes.Secure)
UserEntry = searchUser2(oOU)

End Sub

Protected Sub btnChangePsw_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnChangePsw.Click
Dim UserID, UserPassword As String
UserID = Cache.Get("UserName")
UserPassword = Cache.Get("UserPsw")
Dim oOUChange As New System.DirectoryServices.DirectoryEntry("LDAP://test.hoff..se", UserID, UserPassword, AuthenticationTypes.Secure)
ChangeUserPsw(oOUChange)

End Sub

Public Function searchUser2(ByVal myEntry As System.DirectoryServices.DirectoryEntry)
lstResults.Items.Clear()
lblDebug.Text = ""

Try
'skapar en instans av objekten directoryentry för att komma åt LDAP
Dim mySearch As New System.DirectoryServices.DirectorySearcher(myEntry)
Dim UserEntrySearch As New DirectoryEntry

'skapar sökfiltret samt lägger till vilka egenskaper som skall läggas med i sökningen
lblDebug.Text = txtSearch.Text
mySearch.Filter = "(SAMAccountName=" & txtSearch.Text & ")"
mySearch.PropertiesToLoad.Add("cn")
mySearch.PropertiesToLoad.Add("sAMAccountName")
mySearch.PropertiesToLoad.Add("description")


'listar informationen från resultatet från sökningen
Dim result As System.DirectoryServices.SearchResult
For Each result In mySearch.FindAll()
' lblDebug.Text = result.Properties.Count.ToString
If result.Properties.Count = 0 Then
lblDebug.Text = "Användaren hittades ej"
Else
lstResults.Items.Add(result.Properties("cn")(0))
lstResults.Items.Add(result.Properties("sAMAccountName")(0))
lstResults.Items.Add(result.Properties("description")(0))
lstResults.Items.Add(result.Path.ToString)
UserEntrySearch = result.GetDirectoryEntry()
'UserPath = result.Path

End If

Next result
'returnera det aktuella objektets path
Return UserEntrySearch
'Return UserPath

Catch ex As Exception
lblDebug.Text = "fel"
Return Nothing
End Try
End Function

Public Sub ChangeUserPsw(ByVal myEntry As System.DirectoryServices.DirectoryEntry)
lstResults.Items.Clear()
lblDebug.Text = ""

Try
'skapar en instans av objekten directoryentry för att komma åt LDAP
Dim mySearch As New System.DirectoryServices.DirectorySearcher(myEntry)
Dim UserEntryChange As New DirectoryEntry

'skapar sökfiltret samt lägger till vilka egenskaper som skall läggas med i sökningen
lblDebug.Text = txtSearch.Text
mySearch.Filter = "(SAMAccountName=" & txtSearch.Text & ")"
mySearch.PropertiesToLoad.Add("cn")
mySearch.PropertiesToLoad.Add("sAMAccountName")
mySearch.PropertiesToLoad.Add("description")


'listar informationen från resultatet från sökningen
Dim result As System.DirectoryServices.SearchResult
For Each result In mySearch.FindAll()
' lblDebug.Text = result.Properties.Count.ToString
If result.Properties.Count = 0 Then
lblDebug.Text = "Användaren hittades ej"
Else

UserEntryChange = result.GetDirectoryEntry()

UserEntryChange.Invoke("setpassword", "sommar1")
UserEntryChange.CommitChanges()

'Att användaren får byta lösen vid nästa inloggning
UserEntryChange.Properties("pwdLastSet").Item(0) = -1
UserEntryChange.CommitChanges()
UserEntryChange.Close()
End If

Next result

Catch ex As Exception
lblDebug.Text = "fel"
End Try
End Sub


Protected Sub btnReset_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReset.Click

End Sub


End Class


Svara

Sv: Impersonation i vb.net/asp.net (hemsida för att resetta lösen)

Postades av 2006-08-21 12:50:48 - Magnus Gladh

Impersonation är något som du sätter i web.config fil, samt att du på IIS:en skall sätta in att Anynoums user inte har access.

-M


Svara

Sv:Impersonation i vb.net/asp.net (hemsida för att resetta lösen)

Postades av 2006-08-21 14:07:46 - Christian Hoffman

Som jag har fattat det så körs applikationen under ASP-process som inte har tillgång till olika funktioner i Active Directory, t.ex. resetta användares lösenord och därför behöver man köra med impersonation. Sen att bara ändra i web.config till <identity impersonation = "true" /> räcker inte förmodar jag?
Det jag är ute efter är att den del av koden som ska söka och ändra en användares lösenord körs med det kontot som man loggar in med i applikationen.
Men det kanske inte behövs?

/Christian


Svara

Sv: Impersonation i vb.net/asp.net (hemsida för att resetta lösen)

Postades av 2006-08-22 08:51:08 - Magnus Gladh

Du skall i din web.config ha följande 2 rader:

<authentication mode="Windows" />
<identity impersonation = "true" />


Dessa 2 rader gör att du nu kommer att exekvera din websida som den användare som loggar in på siten. Som default kommer detta vara IUSR_<<MACHNINE_NAME>> och denna person lär inte ha några rättigheter att göra det du vill. Så det du skall göra är att kryssa ut ruta: Anonumys access i Directory Security i IIS admin.

Då kommer du presenteras för en loggin ruta när du surfar till siten, om du vill slippa logga in, så skall du kryssa i 'Integrated Security'.

Detta skall räcka för att göra det du vill, så länge du har rättigheter att göra det du vill.

- M


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
469
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies