• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    TOOMIX
    TOOMIX --- ---
    SAJAGI: vezmu installer, nainstaluju aplikaci ve virtuálu a zapnu ji
    SAJAGI
    SAJAGI --- ---
    Testujete nějak installery vašich aplikací? Pokud ano, jak?
    DJFRACTAL
    DJFRACTAL --- ---
    Má někdo zkušenosti s deploymentem Blazor Server mimo Azure? Nějaká ověřená cloudslužba, kde to moc nezlobí?
    SIRLOON
    SIRLOON --- ---
    FREELA: ani s jabou by to neudelali. Ty muses mit vic druhu pripojeni, ale kazdy musi byt unikatne definovany. Stejne jako mas pro dva ruzny Idap url s metadatama pro konkretni pripojeni, tak stejne to musis definovat i u sebe jinak ti nebudou sedet ty tokeny
    CERMI_FOX
    CERMI_FOX --- ---
    FREELA: Další autentizace přidat jde, ale pod jiným scheme, tj něco jako builder.Services.AddAuthentication("MujCustomScheme) . Vím, že jsem to kdysi řešil a byl opruz, že výchozí auth scheme může být jen jedno a to autentizaci přes druhé je třeba explicitně požádat. Moc detailně si to bohužel už nepamatuju, je to hodně let, ale tak cvičně jsem našel odkazy https://code-maze.com/dotnet-multiple-authentication-schemes/ a https://learn.microsoft.com/en-us/aspnet/core/security/authorization/limitingidentitybyscheme?view=aspnetcore-7.0
    Jestli lezeš přes dva různé identity providery (jestli jsem to správně pochopil), tak jiná možnost mě nenapadá. Korektní řešení je před to postavit něco, co ty dva IdP federuje do jednho a mapuje claimy na nějakej společnej set.

    Doufám, že jsem tě pochopil správně :)
    FREELA
    FREELA --- ---
    Zdar! Mam problem. Jde o cest a slavu .NET CORE :)

    V builderu nastavuji authentikaci:

    builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"));

    s nastavenim podle obrazku. Devops ma pozadavek rozlisovat B2C environments (Microsoft a Google) a overovat token s odlisnym SignUpSignInPolicyId. Pridat dalsi authentikaci se mi nepodarilo, stale je problem, ze JwtBearerDefaults.AuthenticationScheme (beaver) already exists.

    Potreboval bych za behu tedy v middleware menit jen zvyraznenou polozku z obrazku SignUpSignInPolicyId.

    Tenhle dva roky stary stackoverflow tvrdi, ze to nejde.
    "It seems indeed impossible at the moment to have multiple B2C environments connected to one Azure App Service."
    c# - .NET Core route based authentication with multiple B2C environments - Stack Overflow
    https://stackoverflow.com/questions/64859576/net-core-route-based-authentication-with-multiple-b2c-environments

    Prosadil jsem na tenhle projekt .NET CORE a za vraty mam JAVA hyeny, co cekaji az prijdu a reknu, ze .NET neco neumi :) Nejaky napad? Nebo by si to spravne melo cele osetrit devops a ja bych smel pouzivat jen jednu SignUpSignInPolicyId.

    TOOMIX
    TOOMIX --- ---
    Visual Studio 2022 - 17.5 Released - Visual Studio Blog
    https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-5-released/
    WEWERKA
    WEWERKA --- ---
    RORSCHACH: To je zalezitost ovladaciho sw UCCNC https://cncdrive.com/UCCNC.html. Ten pracuje s controlery http://www.shop.cncdrive.com/index.php?categoryID=114 a ty si muzes dat kam potrebujes. Ja konkretne mam kupovane reseni od Stepcraftu a to model M.
    LARS_GUNNER
    LARS_GUNNER --- ---
    RORSCHACH: To bude CNC#
    RORSCHACH
    RORSCHACH --- ---
    WEWERKA: můžu se zeptat, co je to za stroj? jsem netušil, že jsou nějaký CNC s podporou C# :)
    WEWERKA
    WEWERKA --- ---
    Tak to zabralo. Jeste jednou diky.
    WEWERKA
    WEWERKA --- ---
    SLUPKA, TOOMIX: Aha, to zni logicky. Diky, zitra (dneska) vyzkousim a dam vedet.
    TOOMIX
    TOOMIX --- ---
    TOOMIX: případně ten else vyhodit, když se nastaví výchozí hodnota 0 při deklaraci proměnné
    TOOMIX
    TOOMIX --- ---
    WEWERKA: deklaruješ tam 2x proměnnou Yorigpospark (podruhé v else), takže takhle nějak to má vypadat, nadeklarovat před if-else a pak použít.

    double Yorigpospark = 0;
    if(exec.GetYmachpos()>(ToolY[1] + Ytooloffset)) 
    {
       Yorigpospark = exec.GetYmachpos();
       exec.Code("G00 G53 Y" + (ToolY[1] + Ytooloffset));
       while(exec.IsMoving()){};
    } 
    else 
    {
       Yorigpospark = 0;
    }
    SLUPKA
    SLUPKA --- ---
    WEWERKA: Nelze mít to druhé místo proměnnou také s typem před názvem (= je třeba odebrat to double). Takhle se pokoušíte dvakrát vytvořit novou proměnnou se stejným jménem.
    WEWERKA
    WEWERKA --- ---
    Ahoj, mam v uccnc makra na obsluhu cnc, pry to pouziva C# a narazila jsem tam na jednu vec, ktere nerozumim. Pokousim se tam definovat promennou, ale C# ji bud nezna nebo se brani redefinici. S C# jsem nikdy nepracovala, tak pardon za zrejme blby dotaz.

    if(exec.GetYmachpos()>(ToolY[1] + Ytooloffset)) {
    double Yorigpospark = exec.GetYmachpos();
    exec.Code("G00 G53 Y" + (ToolY[1] + Ytooloffset));
    while(exec.IsMoving()){};
    } else {
    double Yorigpospark = 0;
    }

    Pri pozdejsim vypsani obsahu hlasi, ze "Název Yorigpospark v aktuálním kontextu neexistuje." Pritom jine promenne, ktere nacitaji exec.GetYmachpos() hodnotu zobrazi.

    Kdyz zkousim variantu

    double Yorigpospark = 0;
    if(exec.GetYmachpos()>(ToolY[1] + Ytooloffset)) {
    double Yorigpospark = exec.GetYmachpos();
    exec.Code("G00 G53 Y" + (ToolY[1] + Ytooloffset));
    while(exec.IsMoving()){};
    }

    dostavam hlasku "V tomto oboru nelze deklarovat lokální proměnnou s názvem Yorigpospark, protože by došlo k posunutí významu názvu Yorigpospark, který je již v oboru nadřazený nebo aktuální prvek použit jiným způsobem."
    SIRLOON
    SIRLOON --- ---
    PELDA: ale to “y” si radeji zmen, nebo ti pancelka snizi znamku za upravu 😉
    PELDA
    PELDA --- ---
    EMBI:
    MORMEGIL: Diky obema za nasmerovani... vyreseno! Missing part byl ten cast z object na IEnumerable

    FYI tohle funguje (GetPropertyValue mam napsane jako Reflection podobne jako EMBI: )

    MORMEGIL
    MORMEGIL --- ---
    PELDA: List<T> není nijak variantní, takže bez dostupnosti toho typového parametru s tím nijak nepochodíš. Můžeš to přetypovat prostě na negenerický IList (protože List<T> implementuje i negenerický IList), takže s tím pak můžeš pracovat rozumně jako se seznamem objektů. Pokud by ten DataColumnProducer měl nějakého veřejně dostupného užitečného předka, dá se to taky přetypovat na IEnumerable<Předek> (protože IEnumerable je kovariantní). (Jestli nemá, tak samozřejmě můžeš na IEnumerable<object>, ale to nemá proti negenerickému IList žádnou výhodu, řekl bych.)
    EMBI
    EMBI --- ---
    PELDA: Muze byt treba takto?


    class Program
    {
        static void Main(string[] args)
        {
            MyClass m = new MyClass();
    
            PropertyInfo? prop = m.GetType().GetProperty("PrivateList", BindingFlags.Instance | BindingFlags.NonPublic);
    
            Assembly assembly = Assembly.GetExecutingAssembly();
            Type subType = assembly.GetTypes().First(t => t.FullName.EndsWith("PrivateSubClass"));
    
            object? obj = prop.GetValue(m);
            foreach (object item in (IEnumerable)obj)
            {
                object? x = subType.GetField("x", BindingFlags.Instance | BindingFlags.Public).GetValue(item);
                Console.WriteLine(x);
            }
        }
    }
    
    class MyClass
    {
        private List<PrivateSubClass> PrivateList { get; } = new List<PrivateSubClass>()
        {
            new PrivateSubClass() { x = 0 },
            new PrivateSubClass() { x = 1 },
        };
    
        private class PrivateSubClass
        {
            public int x;
        }
    }
    Kliknutím sem můžete změnit nastavení reklam