Laden...
P
plongo myCSharp.de - Member
Webprogrammierer RLP Dabei seit 14.02.2006 123 Beiträge
Benutzerbeschreibung

Forenbeiträge von plongo Ingesamt 123 Beiträge

16.02.2006 - 08:42 Uhr

bitte erschlagt micht net. Ja ich habe bisher nur mit VB.Net gearbeitet, aber nicht aus dem Grund weil ich wollte, sondern viel mehr weil ich musste (Arbeit). Nun programmiere ich aber privat mit C# (endlich angefangen).

Da ich mir eine DB-Klasse mit VB erstellt habe und dort auch in einigen Prozeduren, Funktionen optionale Parameter einsetze, ist mir gestern beim meinen Projekt aufgefallen das es bei der Verwendung dieser Klasse bzw. der Prozeduren/Funktionen die optinale Parameter haben, musste ich trotzdem einen leeren String oder eben denn passenden Typ mitgeben und konnte dies einfach nicht leer lassen.

Also meine Frage C# kennt keine optionale Parameter?

Danke

15.02.2006 - 17:32 Uhr

Du willst in einer Tabellezelle den Inhalt zentrieren?

<td align="center" valign="middle">
.
.
.
</td>

hab mir jetzt nix durchgelesen

15.02.2006 - 17:26 Uhr

sorry ich versteht bahnhof...

du hast einen button die eigenschaft causevalidation auf false gesetzt. Damit wird keine Validierung mehr vorgenommen. Trotzdem möchtest du bestimmte Controls validieren. Die Emails-Controls sind schon validiert!

Da du ja ValidationControls im Einsatz hast, würde ich diese auch einsetzen. D.h. setze CauseValidation auf true. Somit werden alle Controls validiert. Auch die Emails, aber wenn diese ja schon valdiert worden sind, dürfte dies doch kein Problem darstellen.

Oder du gehst hin und deaktivierst eben diese ValidationControls auf false beiden Emails. Damit werden diese nicht gecheckt, wiederum die anderen.

das mit dem Email + Datagrid verstehe ich nicht ganz!

15.02.2006 - 16:58 Uhr

ich müsste es vielleicht mal auf einen anderen Testsystem ausprobieren....
Das mach ich vielleicht mal auf meiner lokalen Win XP Maschine....

Hmm naja ich weiss jetzt auch nicht mehr weiter..... Micht wunderst es auch warum er dort diese Probleme hat.... Aber solange werde ich eben mit meinen Account arbeiten müssen

trotzdem danke ich euch füre eure hilfe

15.02.2006 - 16:39 Uhr

Siehste das programm macht nur, was du ihm sagst 😁

15.02.2006 - 16:36 Uhr

@Cord
Hast du bei deiner Win-Auth. noch irgendwas bestimmes eingestellt? Ausser IIS, web.config?

15.02.2006 - 16:33 Uhr

tja mir gehen mittlerweile die Ideen aus

hab nochmal folgendes probiert


<script language="vb" runat="server">
	Sub Page_Load()
		Dim context As System.Security.Principal.WindowsImpersonationContext = CType(User.Identity, System.Security.Principal.WindowsIdentity).Impersonate()
		
		response.write("1. " & User.Identity.Name & "<br />")
		response.write("2. " & System.Security.Principal.WindowsIdentity.GetCurrent.Name & "<br />")
		response.write("3. " & System.Threading.Thread.CurrentPrincipal.Identity.Name & "<br />")
		response.write(System.IO.File.Exists("\\spsdat\ps\OrgBer\Marketing\Interne Kommunikation\Anhänge\neue_mitarbeiter.doc"))
		
		'// Der Code, der die Rechte benötigt...
		context.Undo()
	End Sub	
</script>

Ergebnis:

  1. PSH1\Andreas
  2. PSH1\Andreas
  3. PSH1\Andreas
    False -> true wäre schöner 😁

Ich habe ehrlich gesagt keine Ahnug mehr, was ich nach alles machen kann, soll, muss. Wohl oder übel muss ich alles über meine Account laufen lassen. Es zwar die die feine lösung, aber was bleibt mir anderes übrig?

15.02.2006 - 15:58 Uhr

aha und woran hat es gelegen?

15.02.2006 - 15:50 Uhr

dann deaktiviere doch liebe für die email die ValidationControls statt beim button causevalidation auf false zu setzten!

15.02.2006 - 15:47 Uhr

Glaubst du wirklich das die IIS-Einstellung egal ist?

Für dieses Szenario brauche im IIS schon die Win-Auth. oder verstehe ich dich falsch.

Achja ich nutze IIS 6 und .NET 1.1

Also
IIS -> Win.Auth


	<system.web>
		<authentication mode="Windows" />
		<identity impersonate="false" />
		<authorization>
			<deny users="?" />
		</authorization>
	</system.web>

Test: Ausgabe des Bentuzers


<%="1. " & User.Identity.Name%><br />
<%="2. " & System.Security.Principal.WindowsIdentity.GetCurrent.Name %><br />
<%="3. " & System.Threading.Thread.CurrentPrincipal.Identity.Name %>

Ausgabe
1. PSH1\Andreas
2. NT-AUTORITÄT\NETZWERKDIENST
3. PSH1\Andreas

Sezte ich web.Config
<identity impersonate="true" /> erhalte ich die Ausgabe


1. PSH1\Andreas
2. PSH1\Andreas
3. PSH1\Andreas

jetzt kann ich doch davon ausgehen das er mit meiner Identität arbeitet. Arbeite der Email-Versand über NTLM + Zugriff auf eine Dateim im Netzwerk klappt net, ausser ich setzte mein Account im identity Element.

15.02.2006 - 15:36 Uhr

OK dann verwende ich mal deine Config und setze mal im IIS die Auth um bzw. kann ich es ja lassen, das es nach deiner meinung her egal ist.

Nur die Frage ist wo kann der Fehler denn noch liegen? X( 8o

15.02.2006 - 15:33 Uhr

Mit den Werten in der DDL klappt es jetzt?

Aber er führt deine Prozedur btnApply_Click nicht aus?

15.02.2006 - 15:12 Uhr

Das Problem ist das soweit ja alles klappt ich bin mit meinen Benutername authentifiziert und kriege das ja auch gemeldet.

nur wenn ich versuche eine email zu versenden mmit NTLM + einer Datei aus den dem Netzwerk. da klappt es dann nicht!!!

Ich vermute mal das dort das Token wohl nicht weitergeben wird ?!

15.02.2006 - 14:54 Uhr

Aha und wie hasst du dem Button diese methode mitangegeben?

Etwas so
<asp:button Id="btnApply" Text="senden" onClick="btnApply_Click" runat="server" />

oder im codebehind (vb.net)
Dim WithEvents btnApply as button
Public Sub btnApply_Click(sender as object, e as evenargs) Handles btnApply.Click

Eigentlich sollte er die Werte für die Steuerelemente auslesen, solange du EnableViewState auf true hast, für die page oder das control.

Danach sollte dies funktionienren

15.02.2006 - 14:33 Uhr

Ich habe jetzt mal deine option versucht.

Jetzt bekomm ich die Fehlermeldung:

CryptoAPI cryptographic service provider (CSP) for this implementation could not be acquired. 

Hmm naja, ich werde es mal versuchen mit der weitergabe des Benutzers und kennwort. Mal schauen ob das was bringt.

Ich weiss ja nicht ob ich irgendeine Einstellung vergessen habe.

  1. IIS ist nur auf Win-Auth.
  2. web.config ist mit Win-Mode
  3. web.config ist impersonate true

Bei der Augabe des aktuellen User in httpContext bzw. mit WindowsIdentity bekomme ich immer meinen Account angezeigt. Dennoch klappt es nicht.

Ausser ich stelle eben in der web.config das identity-element mit meinen Benutername und Kennwort ein. Dann klappts. Das ist im IE und FF

15.02.2006 - 14:20 Uhr

Du meinst also in IE unter Internetoptionen > Sicherheit > Lokales Intranet > Stufe anpassen > Benutzerauthentifizierung > nach Benutername und Kennwort fragen

Bzw. könnte ich dort auch auswählen > Automatische Anmeldung mit aktuellen Benutzername und Kennwort?

Gruss plongo

15.02.2006 - 14:04 Uhr

Das liegt ja an der eigenen Handhabung deines Codes. Baue dies modular auf. sollen heissen in getrennten prozeduren und rufen sie nur bei einem bestimmten event auf!

15.02.2006 - 14:00 Uhr

ok danke muss ich direkt mal testen 😁

Gruss plongo

15.02.2006 - 12:41 Uhr

Evtl. würde es klappen 2 forms auf der Seite zu erstellen!

Das eine für den Treeview und das anderen für den Rest.

Bin mir jetzt nicht sicher ob das .Net nicht rummeckert. Einfach mal testen.

Ansonten wirst du nicht darum kummern eine Form für alles zu verwenden. Aber das ist noch nicht schlimm. Auswerten tust du nur das was du brauhst.

15.02.2006 - 11:48 Uhr

Keine eine Ahnung?

ich habe schon alles versucht. Aber es will einfach net klappen!

Naja

Danke & Gruss plongo

14.02.2006 - 20:36 Uhr

Hallo,

du bist doch auch im www.aspforum.de tätitg? Dein Nickname kommt mir doch bekannt vor!

Also ich werde morgen mal dein Antwort versuchen umzusetzen.

Aber der Anmeldedialog wird mir angezeigt, zumindens im Mozilla Firefox. Der IE unterstützt doch die direkte Weitergabe des Accounts (der Creditinials)?

Dies habe ich in der SDK gelesen, da irre ich mich doch nicht?

Wenn ich mir jetzt folgende Befehle ausgebe:
lbmessage.Text &= User.Identity.Name & "<br />"
lbmessage.Text &= WindowsIdentity.GetCurrent().Name & "<br />"

Bekomme ich immer meinen aktuellen Account angezeigt der in der Domain genutzt wird.

Im IIS habe ich die Win.-Auth aktiviert und die Anonym.-Auth deaktiviert. In der web.Config nutze ich die Windows-Mode, sowie setzte ich das attribut impersonate auf true.

trotzdem funktioniert nicht der zugriff auf das netzwerk. gebe ich der web.config jetzt in der identity-element jetzt nch mein username und pwd mit klappt alles einswandfrei.

das kommt mir spanisch vor?

was mach ich da falsch

Danke & Gruss plongo

14.02.2006 - 16:41 Uhr

Erstmal hallo an alle,

für unsere Intranet-Anwendung um einen Newsletter zu erstellen und
versenden, möchte ich gerne mit der Windows-Auth. nutzen. Dennoch klappt dies
leider nicht wie gewünscht.

Ich habe zu einem im IIS 6.0 die Windows-Auth. eingeschaltet und die Anonyme
Auth. ausgeschaltet.

In der Web.config habe ich dann noch folgende Einträge hinterlegt.

<!-- Authenifizierungsmethode festlegen /-->
<authentication mode="Windows" />
<identity impersonate="true" />

<!-- Zugriff fuer alle Seiten nicht erlauben (erstmal) /-->
<authorization>
<allow roles="Domain\Rolle1,Domain\Rolle2" />
</authorization>

Nun wenn ich folgende Code ausführe, bekomme ich nicht die gewünschten
Ergebnisse:

<script language="vb" runat="server">
Sub Page_Load()
lbmessage.Text = File.Exists("J:\Ordner1\Ordner2\datei.doc") & "<br />"
lbmessage.Text &= File.Exists("\server\Ordner1\Ordner2\datei.doc") & "<br
/>"
lbmessage.Text &= User.Identity.Name & "<br />"
lbmessage.Text &= WindowsIdentity.GetCurrent().Name & "<br />"
End Sub

Ich habe folgende Ausgabe:

False
False
Domain\Account
Domain\Account

Wenn ich nun in der web.Config Datei den Eintrag
<identity impersonate="true" /> auf
<identity impersonate="true" userName="User" password="pwd" /> auf meine
Account einrichte, lieftert mir der Befehl
File.Exists("\server\Ordner1\Ordner2\datei.doc") true zurück. Das dies mit
J:\ nicht funktioniert leuchet mir ein, da dies ja ein Netzlaufwerk ist.

Ich möchte gerne hier mir den aktuellen Account arbeiten und nicht immer
über meinen. Ich habe schon versucht dies Codeseitg per
System.Security.Principial zu realisieren. Doch diese brachte ebenfalls nicht
den gewünschten Erfolg.

Vielleicht habt ihr ja noch einen Tipp für mich.

Ich bedanke mich jetzt schonmal. Suche schon lange nach einer Lösung