jasso
-
Gesamte Inhalte
562 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von jasso
-
-
@arlegermi: "nur Klassen" würde mir vollkommen reichen.
Leider funktioniert es damit ebenfalls nicht.
Mit ...public interface IBlub<T> where T : class { void InsertOrUpdate(T? givenDBElement = null); }
… bekomme lediglich vom Compiler die Meldung:
ZitatDer Typ "T" darf keine NULL-Werte zulassen, wenn er als T-Parameter im generischen Typ oder in der generischen Methode "Nullable<T>" verwendet werden soll.
@KeeperOfCoffe: Danke fürs nachgoogeln. Die Ergebnisse habe ich bereits gefunden. Helfen mir nur in meinem konkreten Fall leider nicht weiter.
Danke
LG
Jasso -
Hallo,
ich möchte aktuell in einer Typisierten Klasse (bzw. erstmal im Interface) einen Typ als Nullable definieren.
Geht das überhaupt? Ich kann leider nichts dazu finden.
public interface IBaseElement<T> { void InsertOrUpdate(T? givenDBElement = null); }
ist leider nicht erlaubt da T per se mal nicht nullable ist.
Ich hätte auch versucht etwas wie
public interface IBaseElement<T> where T : Nullable { void InsertOrUpdate(T? givenDBElement = null); }
zu verwenden, aber auch das akzeptiert mir der Compiler nicht.
Danke
LG
Jasso -
Vielen Dank,
alle Hinweise waren sehr Hilfreich und haben mich letztendlich ne Lösung finden lassen ☺️.
Ich brauche den AutoMapper weil das Mapping nur ein teil eines sehr verschachtelten Mappings ist.Allerdings funktioniert eine Map
CreateMap<List<PriceValue>, Dictionary<CurrencyModel, decimal>>() .ConvertUsing<PriceConverter>() ;
die dann wiederum
public class PriceConverter : ITypeConverter<List<PriceValue>, Dictionary<CurrencyModel, decimal>> { public Dictionary<CurrencyModel, decimal> Convert(List<PriceValue> source, Dictionary<CurrencyModel, decimal> destination, ResolutionContext context) { if(source == null) { return new Dictionary<CurrencyModel, decimal>(); } else { return source.ToDictionary(keySelector: x => Mapper.Map<CurrencyModel>(x.Currency), elementSelector: x => x.Value); } } }
verwendet.
(Ist ein wenig anders als das vorgestellte Beispiel, aber darauf sollt es final hinauslaufen)
LG
Jasso -
Hallo Zusammen,
ich hänge hier grad mit dem Automapper ein wenig fest.
Über das EF bekomme ich Elemente die ich dann auf meine Models mappen möchte.
Und zwar versuche ich von einer Liste von Objekten in ein Dictionary zu mappen.Im einfachsten Fall versuche ich mein Mapping folgendermaßen:
CreateMap<PriceValue, KeyValuePair<Guid, PriceValue>>() .ForMember(dest => dest.Key, opt => opt.MapFrom(src => src.CurrencyID)) .ForMember(dest => dest.Value, opt => opt.MapFrom(src => src)) ;
meine Quelldaten sind eine
List<PriceValue>
und als Ziel hätte ich
Dictionary<Guid, PriceValue>
Ich bekomme auch keine Fehlermeldung dass ein Mapping fehlen würde, also nehme ich an dass das Mapping an sich der richtige Ansatz ist.
Nur leider ist die Ergebnisliste leer (die Quellliste natürlich nicht).hat jemand eine Ahnung was ich beim Mapping in mein Dictionary falsch mache?
Vielen Dank und beste Grüße
Jasso
-
Damit unsere Webapplikation nicht von der Erreichbarkeit eines fremden (entfernten) Systems abhängig ist auf das wir keinen Einfluss haben.
-
Es geht dabei nicht darum sich gegen unser AD zu authentifizieren, sondern unseren Kunden die Möglichkeit zu geben ihre AD-Credentials in unser System zu synchronisieren um sich an unserer Webapplikation mit deren AD-Accounts zu authentifizieren.
Eine gewisse Sync-Dauer ist dabei durchaus ok.
-
Hi Mttkrb,
da würde ich Dir an sich zustimmen. Solange ich die Authentifizierung im System durchführen müsste oder davon ausgehen könnte dass das System immer zuverlässig erreichbar ist würde ich die Authentifizierung immer direkt gegen das AD fahren.
Da wir die Authentifizierung allerdings lediglich mit den selben Credentials gegen ein Drittsystem (tatsächlich Physikalisch getrennt) durchführen und sicherstellen wollen dass die User sich immer, auch wenn das AD-System grad, aus welchen Gründen auch immer, nicht erreichbar sein sollte, authentifizieren kann, machen wir den Sync der Daten.
Das Aktuellhalten der Daten ist dann das nächste Problem um das ich mich zu kümmern habe ;).
LG
jasso -
Hallo zusammen,
nur der Vollständigkeit halber.
Es gibt wohl keinen "offiziellen" Weg, allerdings hab ich mir ein PowerShell-Script gebastelt mit dem ich das AD-DB-File kopieren und auslesen kann. Daraus kann man auch die PW-Hashes ziehen.# Paths $basePath = Join-Path "C:\ReadADInfo\" $(get-date -f yyyy-dd-MM_HHmmss); If(!(test-path $basePath)) { New-Item -ItemType Directory -Force -Path $basePath; } $shadowCopyPath = Join-Path $basePath "shadowcopy"; $ADDBFilePath = (Join-Path $basePath "ntds.dit"); $SysKeyPath = (Join-Path $basePath "SYS"); #Global Functions function Write-MyHost { param ([string]$output) #Constants $preOutput = "---- "; $postOutput = " ----"; Write-Host ($preOutput + $output + $postOutput); } # copy ntds.dit Write-MyHost "copy ntds.dit"; $s1 = (Get-WmiObject -List Win32_ShadowCopy).Create("C:\", "ClientAccessible"); $s2 = Get-WmiObject Win32_ShadowCopy | Where-Object { $_.ID -eq $s1.ShadowID }; $d = $s2.DeviceObject + "\"; cmd /c mklink /d $shadowCopyPath "$d"; copy (Join-Path $shadowCopyPath "Windows\NTDS\ntds.dit") $ADDBFilePath; # remove linked directory Write-MyHost "remove linked directory"; fsutil reparsepoint delete $shadowCopyPath; rmdir $shadowCopyPath; $IDToDelete = $s1.ShadowID.ToString(); $IDToDelete = """$IDToDelete"""; vssadmin delete shadows /shadow=$IDToDelete /Quiet; # cleanup DB-copy Write-MyHost "cleanup DB-copy"; ESENTUTL /p $ADDBFilePath /!10240 /8 /o; # copy SYS Key Write-MyHost "copy SYS Key"; reg SAVE HKLM\SYSTEM $SysKeyPath; # read SYS Key Write-MyHost "read SYS Key"; $key = Get-BootKey -SystemHiveFilePath $SysKeyPath; # Get Accounts from DB-copy Write-MyHost "Get Accounts from DB-copy"; $ADAccounts = GET-ADDBAccount -All -BootKey $key -DBPath $ADDBFilePath; # Search for given User Write-MyHost "User"; for ($i=0; $i -lt $ADAccounts.length; $i++) { if($ADAccounts[$i].SamAccountType -eq "User") { Write-Host ("User: " + $ADAccounts[$i].SamAccountName); if($ADAccounts[$i].NTHash -ne $null) { Write-Host ("PWHash: " + (($ADAccounts[$i].NTHash|ForEach-Object ToString X2) -join '').ToLower()); } Write-Host ""; } }
Die Hashes werden übrigens für den späteren Vergleich MD4(UTF-16-LE(password)) gespeichert. MD4 ist in .NET nicht per Default im Encoding enthalten. Habe aber hier eine brauchbare Klasse gefunden.
LG
jasso -
Hallo zusammen,
Ich versuche gerade PW-Hashes aus einem ActiveDirectory auszulesen. Vorzugsweise würde ich das in C# implementieren, leider hilft mir die System.DirectoryServices.AccountManagement-Klasse nicht wirklich weiter.
Ziel ist es in einem Fremdsystem gegen AD-Accounts zu authentifizieren (ohne jedes mal eine Verbindung zum Ad-Server herstellen zu müssen um die Anmeldung zu verifizieren). Ich möchte also Usernamen und PW-Hashes in einem drittsystem speichern um dort die Anmeldung selbst machen zu können.
Ich möchte also nicht die Plain-PWs auslesen (das wird ohnehin nicht möglich sein da diese ja überhaupt nicht gespeichert werden) sondern lediglich die Hash-Werte zu den Passwörtern abzugreifen.
Leider kann ich dazu nichts wirklich hilfreiches finden.
Hat sowas schonmal jemand gemacht?
Danke
LG
jasso -
Problem gelöst ... es handelte sich um ein Firewallproblem :upps
lg
joachim
-
-
versuchs mal in etwa so:
<?php
$addr_array = "http://www.google.de";
echo "<a target=\"_blank\" href=\"" . $addr_array . "\">linktext</a>";
?>[/PHP]lg
jasso
-
Hallo Leute,
ich habe ein kleines Problem(chen) mit einer ASP.NET-Page an welche ich Dateinamen als Parameter übergeben will.
folgendes kleines Script (VB):
Dim ausgabe As String = "" For Each key As String In Request.Params.Keys ausgabe &= key & "=" & Request.Params(key) & "<br>" Next parameter.InnerHtml = ausgabe
gibt mir sämtliche Parameter aus. Sobald ein Parameter im Wert einen Umlaut enthält (äöü) wird mir die ganze Seite nicht mehr ausgeführt und ich bekomme die Meldung "The page cannot be displayed". Der Fehler kommt auch wenn ich den Parameter Urlencoded übergebe. Kennt das noch jemand? Bin mir auch nicht ganz sicher ob ich hier richtig bin da es sich ebensogut um eine Servereinstellung handeln könnte (IIS6/.NET 2.0.50727).
lg
jasso
-
-
doch ... durchaus verständlich. hab mir sowas ähnliches auch schon gedacht nur noch nicht recht gewusst wie ich nen complexType selber zusammenschraube
du bist jetzt mein persönlicher hero-des-monats^^
danke erstmal.
da ich jetzt den Testservice erfolgreich ansprechen kann werd ich mich mal an den externen wagen. Ich hoffe ich darf dich auch weiterhin mit Fragen hierzu löchern falls ich z.B. mit der Authentifizierung nicht klar komme
lg
jasso
-
Habe jetzt "soap.wsdl_cache_enabled=0" in der PHP.ini gesetzt um den cache mal auszuschließen.
bis auf die sache mit "&'.time()" funktioniert der Testcode auch wunderbar
<?PHP
error_reporting(E_ALL);
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache...
ini_set("display_errors", "1"); // errors on...
ini_set("memory_limit","512M");
try
{
$soapy = new SoapClient('https://scripts.portal-anmeldung.de/ws1/service1.asmx?WSDL', array(
"trace" => 1,
)); //
echo "<font color=\"green\"><br />ShowAllFunctions:<br />";
$result = $soapy->__getFunctions();
echo "<pre>", var_dump($result) , "</pre>";
echo "</font><br /><br />";
try
{
$result = $soapy->__call("Eeeeeeeeechooooo", array("blub"));
echo "<pre>", var_dump($result) , "</pre>";
echo "<font color=\"blue\"><br />LastRequest:<br />";
$result = $soapy->__getLastRequest();
echo str_replace("><", "><br><", htmlentities($result));
echo "</font><br><br>";
echo "<font color=\"blue\"><br />LastResponse:<br />";
$result = $soapy->__getLastResponse();
echo str_replace("><", "><br><", htmlentities($result));
echo "</font><br><br>";
}
catch (SoapFault $e) // Wenn der Call einen Error wirft
{
$result = $soapy->__getLastRequest();
echo str_replace("><", "><br><", htmlentities($result));
echo "<font color=\"red\"><br />Soapfault:<br />";
echo "<pre>", var_dump($e) , "</pre>";
}
}
catch (Exception $e)
{
var_dump($e);
}
?>[/PHP]Er gibt mir schön die vorhandenen Funktionen aus und ich kann die Funktion allem anschein nach auch aufrufen. Nur kommt halt nach wie vor kein Ergebnis zurück:
Das Problem scheint hier zu sein dass er mir im Request den Parameter "schluckt". Rufe ich die HelloWorld-Funktion auf wird die Rückgabe korrekt serialisiert (also funktioniert das schonmal wunderbar). Nur wie gesagt die Parameter gehen irgendwo verloren.[color=SeaGreen]ShowAllFunctions:
array(2) {
[0]=>
string(71) "EeeeeeeeechoooooResponse Eeeeeeeeechooooo(Eeeeeeeeechooooo $parameters)"
[1]=>
string(53) "HelloWorldResponse HelloWorld(HelloWorld $parameters)"
}[/color]
object(stdClass)#2 (0) {
}
[color=Blue]LastRequest:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
<SOAP-ENV:Body>
<ns1:Eeeeeeeeechooooo/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
LastResponse:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance'>http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<EeeeeeeeechoooooResponse xmlns="http://tempuri.org/" />
</soap:Body>
</soap:Envelope>[/color]
lg
jasso
-
Sorry für doppelpost (edit geht nicht mehr):
anzufügen wäre hier evtl dass ich:
<?PHP
error_reporting(E_ALL);
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache...
ini_set("display_errors", "1"); // errors on...
try
{
echo "1<br>";
$client = new SoapClient('https://scripts.portal-anmeldung.de/ws1/service1.asmx?WSDL', array('trace' => 1));
echo "2<br>";
$result = $client->Eeeeeeeeechooooo('test');
echo "3<br>";
echo "ANFRAGE:<br>" . $client->__getLastRequest() . "<br>";
echo "4<br>";
var_dump($result);
}
catch (Exception $e)
{
var_dump($e);
}
?>[/PHP]bereits probiert habe und keine Ergebnisse bekomme.
Ergebnisseite sieht folgendermaßen aus:
12
3
ANFRAGE:
4
object(stdClass)#2 (0) { }
-
:upps Errors auszugeben sollte eigentlich der erste gedanke sein (ja war denn schon Freitag ...)
Hat mir auf jeden fall schonmal sehr weitergeholfen. Das Problem war einfach das fehlende openssl.
Soweit funktioniert das nun auch.
Als nächstes bekomme ich vom Webservice irgendwie kein Ergebnis zurück (Mal davon abgesehen dass eine Class 'SoapException' allem anschein nach ncht gefunden werden kann ... macht aber nix mit Exception funktionierts).
Kann ich mir aus der SoapClient-Klasse die Gesendete und erhaltene XML auslesen?
lg
jasso
-
PHP-Version
PHP Version 5.0.4mein Code sieht jetzt so aus:
<?php
echo "1<br>";
$client = new SoapClient('https://scripts.portal-anmeldung.de/ws1/service1.asmx?WSDL');
echo "2<br>";
$result = $client->Eeeeeeeeechooooo('de_en');
echo "3<br>";
echo $result;
?>[/PHP]leider hab ich das Problem immer noch. Er bricht in der selben Zeile ab.
Find ich aber erfreulich wenn jemand damit Erfahrung hat
lg
jasso
-
Hallo Leute,
ich soll einen Webservice per PHP ansprechen und krieg das irgendwie nicht gebacken.
alle Beispiele die ich per Google finden laufen erstmal auf:
$client = new SoapClient('...');
raus.
soap ist in meiner PHP.ini aktiviert
soapSoap Client enabled
Soap Server enabled
Directive Local Value Master Value
soap.wsdl_cache_dir /tmp /tmp
soap.wsdl_cache_enabled 1 1
soap.wsdl_cache_ttl 86400 86400
mein kompletter Testcode sieht momentan so aus:
<?php
echo "1<br>";
$client = new SoapClient('https://scripts.portal-anmeldung.de/ws1/service1.asmx');
echo "2<br>";
$result = $client->Eeeeeeeeechooooo('nudelsuppe');
echo "3<br>";
echo $result;
?> [/PHP]wobei https://scripts.portal-anmeldung.de/ws1/service1.asmx ein eigener kleiner testwebservice von mir ist.
nur leider bricht das ganze schon beim
[PHP]new SoapClient(..ab.
Kann mir hier bitte jemand weiterhelfen?
danke
lg
jasso
-
der fehler wurde von unseren Admins letztendlich doch in der Firewall lokalisiert :upps
lg
jasso
-
Hi Leute,
ich habe einen Englischen IIS 6.0 mit PHP 5.0.
Wenn ich jetzt einer PHP-testseite einen Umlaut im Parameter übergebe bekomme ich den Fehler "The page cannot be displayed". auch Urlencoded kann der Umlaut nicht übergeben werden.
weiß jemand woran das liegen könnte?
danke
lg
jasso
-
ich bin immer noch davon überzeugt dass ich's nicht war^^.irgendwie geschafft? das sollte man doch wissen, oder?ich probiers weiter.
danke auf jeden fall
lg
jasso
-
Hi Leute,
ich habe es irgendwie geschafft auf meinem Webserver (Win2003 IIS 6.0) sämtliche MIME-Types zu entfernen.
Wisst Ihr eine möglichkeit diese wiederherzustellen?
danke
Joachim
C# Nullable Dynamic Type
in .NET
Geschrieben
au weh … da hast Du natürlich recht. War noch ein gedankliches Überbleibsel aus meinen ersten Versuchen.
Danke so funktioniert es!
LG
Jasso