Avatar billede maddragon Nybegynder
12. december 2008 - 11:09 Der er 6 kommentarer og
1 løsning

tilføj roller i codebehind hjælp behøves

hej
jeg er i gang med at lave et site hvor jeg bruger roller jeg bruger begge providers til det men mit problem er at mine roller vil være dynamiske fordi fordi admin for site har den frihed at han kan selv navn give rollerne og til føje roller til de forskellige ellementer

og det jeg ikke kan finde ud af er at få roller tilføjet til min loginview via codebehind filen til de for skellige områder jeg kan sagtens lave loginviewet med statiske roller og det virker fint men så kan admin for sitet ikke have friheden til at navn give roller som han vil

er der nogen her som evt kan give mig nog eksempler på hvordan du kan tildele roller til loginviews via codebehind eller en and gode måde at gør det på er også velkommen.
Avatar billede Syska Mester
12. december 2008 - 11:19 #1
Membership.CreateUser("user", "pass");

http://aspnet.4guysfromrolla.com/articles/121405-1.aspx - god artikel om det hele, måske det kan bruges.

// ouT
Avatar billede aaberg Nybegynder
12. december 2008 - 12:00 #2
Du tilføjer roller via Roles klassen. Her er et eksempel:

Roles.CreateRole("rollenavn");
Avatar billede maddragon Nybegynder
12. december 2008 - 12:42 #3
hej tak for begge kommentar især den du kom med aaberg_cc den kommer jeg til at bruge senere men det jeg er lidt ude efter er

<asp:LoginView ID="LoginView1" runat="server">                         
                            <RoleGroups>
                                <asp:RoleGroup Roles="Role1">
                                    <ContentTemplate>
                                              Text for everyone who belongs to Role1         
                                    </ContentTemplate>
                                </asp:RoleGroup>
                                <asp:RoleGroup Roles="Role2,role3">
                                    <ContentTemplate>
                                              A user who belongs to both Role1 and Role2 should see this text but also the text above.
                                    </ContentTemplate>                             
                                </asp:RoleGroup>
                            </RoleGroups>
                        </asp:LoginView>

som i kan se for oven er der role 1 og 2,3 dem vil jeg gerne til dele via codebehind filen da rollerne muske ikke vil være ens da admin muske ændre role1 om til moderator så jeg er nødtil at finde ud af hvordan jeg tilføjer rollerne via programereing og ikke i html. håber det giver lidt mere mening jeg kan godt se jeg msuke ikke beskrev det ordentlig foroven beklager hvis der tilfældet.
Avatar billede aaberg Nybegynder
12. december 2008 - 13:14 #4
Du sætter dem sådan:

this.LoginView1.RoleGroups[0].Roles = "Role1";
thie.LoginView1.RoleGroups[1].Roles = "Role2,role3";
Avatar billede maddragon Nybegynder
12. december 2008 - 15:57 #5
kan også få sat contenttemplate for vær role med koderne oven for ?
Avatar billede maddragon Nybegynder
14. december 2008 - 21:08 #6
jeg har fundet det jeg skal bruge men jeg kan bare ikke få det til at virke

private class CustomTemplate : ITemplate
    {
        public void InstantiateIn(System.Web.UI.Control container)
        {
            LoginName ln = new LoginName();
            LoginStatus ls = new LoginStatus();
            Literal lc = new Literal();

            lc.Text = "<br />";
            ln.FormatString = "Welcome, {0}. This line is from the template.";

            container.Controls.Add(ln);
            container.Controls.Add(lc);
            container.Controls.Add(ls);
        }
    }

    private class CustomTemplate1 : ITemplate
    {
        public void InstantiateIn(System.Web.UI.Control container)
        {
            LoginName ln = new LoginName();
            LoginStatus ls = new LoginStatus();
            Literal lc = new Literal();

            lc.Text = "<br />";
            ln.FormatString = "Welcome, {0}. test2.";

            container.Controls.Add(ln);
            container.Controls.Add(lc);
            container.Controls.Add(ls);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
       

        RoleGroup rg = new RoleGroup();
        rg.ContentTemplate = new CustomTemplate();
        String[] RoleList = {"member"};
        rg.Roles = RoleList;
        RoleGroupCollection rgc = LoginView1.RoleGroups;
        rgc.Add(rg);

        RoleGroup rg2 = new RoleGroup();
        rg.ContentTemplate = new CustomTemplate1();
        String[] RoleList2 = {"admin"};
        rg.Roles = RoleList;
        RoleGroupCollection rgc2 = LoginView1.RoleGroups;
        rgc2.Add(rg2);


    }

den får ikke sat rolesne med den contenttemp jeg har assigned den

er der nogen som ved hvorfor ?
Avatar billede maddragon Nybegynder
14. december 2008 - 21:30 #7
posten oven se bort fra den . opdagede hvad det var galt

private class CustomTemplate : ITemplate
    {
        public void InstantiateIn(System.Web.UI.Control container)
        {
            LoginName ln = new LoginName();
            LoginStatus ls = new LoginStatus();
            Literal lc = new Literal();

            lc.Text = "<br />";
            ln.FormatString = "Welcome, {0}. This line is from the template.";

            container.Controls.Add(ln);
            container.Controls.Add(lc);
            container.Controls.Add(ls);
        }
    }

    private class CustomTemplate1 : ITemplate
    {
        public void InstantiateIn(System.Web.UI.Control container)
        {
            LoginName ln2 = new LoginName();
            LoginStatus ls2 = new LoginStatus();
            Literal lc2 = new Literal();

            lc2.Text = "<br />";
            ln2.FormatString = "Welcome, {0}. test2.";

            container.Controls.Add(ln2);
            container.Controls.Add(lc2);
            container.Controls.Add(ls2);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
       

        RoleGroup rg = new RoleGroup();
        rg.ContentTemplate = new CustomTemplate();
        String[] RoleList = {"member"};
        rg.Roles = RoleList;
        RoleGroupCollection rgc = LoginView1.RoleGroups;
        rgc.Add(rg);

        RoleGroup rg2 = new RoleGroup();
        rg2.ContentTemplate = new CustomTemplate1();
        String[] RoleList2 = {"admin"};
        rg2.Roles = RoleList2;
        RoleGroupCollection rgc2 = LoginView1.RoleGroups;
        rgc2.Add(rg2);


    }

dette er den rigtige og den virker

jeg poster den here så andre evt kan få glæde af den.

man kan evt lave en for loop som generere rolesne hvis man har flere end en til en group.

tak for hjælpen til dem som skrev
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester