Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 16008|Vastaus: 0

[ASP.NET] Käyttäjien ja roolien tunnistautuminen FormsAuthenticingin pohjalta

[Kopioi linkki]
Julkaistu 19.7.2018 17.31.14 | | |
Normaaleissa olosuhteissa, kun teemme käyttöoikeuksien hallintaa, tallennamme käyttäjän perustiedot oikean kirjautumisen jälkeen sessiossa ja saamme ne aina, kun käyttäjä pyytää sivu- tai käyttöliittymätietoja tulevaisuudessa

Istunto nähdä ja vertailla, onko hän kirjautunut sisään ja pääseekö hän käsiksi nykyiselle sivulle.

       Sessionin periaate on luoda palvelinpuolelle SessionID, joka vastaa tallennettuja käyttäjätietoja, ja SessionID tallennetaan evästeeseen, ja asiakas kantaa sitä mukanaan aina, kun sitä pyydetään

Eväste, palvelin löytää palvelimen puolelta tallennetut tiedot evästeen istuntotunnuksen perusteella.

       FormsAuthentication on Microsoftin tarjoama meille kehittäjille autentikointiin. Tämän tunnistautumisen avulla voimme tallentaa käyttäjänimen ja osan käyttäjätiedoista evästeisiin,

Perusidentiteetin ja roolien tunnistautuminen onnistuu helposti perusehtojen asetuksilla.

       Tässä saavutettava vaikutus on toteuttaa roolipohjainen käyttöoikeuksien hallinta järjestelmän tarjoamalla Authorize-toiminnolla ilman jäsenyyttä.

1. Luo tiketti

Kun käyttäjä kirjautuu sisään, käyttäjän ID ja vastaava rooli (useille rooleille erillään) tallennetaan tikettiin.

Salaa tiketti FormsAuthentication.Encrypt -toiminnolla.

Tallenna salattu tiketti Response-evästeeseen (asiakas js ei tarvitse lukea tätä evästettä, joten on parasta asettaa HttpOnly=True estämään selainhyökkäykset varastamasta ja väärentämästä evästeitä). Näin voit lukea sen seuraavalla kerralla Request-evästeestä.

Yksinkertainen demo on seuraava:


bool isPersistent, //insist to persist (aseta tarpeen mukaan, jos se on asetettu persistenceksi, evästeen Expires-asetus on asetettava evästeen lähettämisen yhteydessä)

FormsAuthenticationTicketin kuudes parametri tallentaa userData-tyyppijonon, jossa nykyisen käyttäjän rooli-ID on tallennettu, erotettuna pilkulla.

Kun kirjaudutaan sisään käyttäjätunnuksella "test", asiakkaalle ilmestyy lokieväste


2. Hanki sertifiointitiedot

Sisäänkirjautumisen jälkeen sisältösivulla voimme saada uname-tiedot nykyisen pyynnön User.Identity.Name kautta, tai voimme purkaa evästeen pyynnöstä ja saada siitä uname- ja käyttäjätiedot (eli aiemmin tallennetut rooli-ID-tiedot).


3. Toteuta käyttöoikeuksien hallinta annotaatioattribuuttien avulla

Määritä Ota käyttöön lomakkeiden autentikointi ja roolien hallinta web.config-tiedostossa

Kun lisäämme merkintäominaisuudet Controlleriin ja Actioniin, mistä saamme Role-ominaisuuden? Koska emme käytä jäsenyyteen perustuvaa tunnistautumista, aiomme myös luoda oman RoleProviderin. Nimi on CustomRoleProvider, joka on peritty RoleProviderilta. Tässä on oman CustomRoleProvider.cs-tiedostosi luominen Helper-kansiossa MVCAppin alla.

RoleProviderissa on monia abstrakteja menetelmiä, ja otamme käyttöön GetRolesForUser-metodin vain käyttäjäroolien saamiseksi. Käyttäjäroolia voidaan tässä hakea tietokannasta saatun käyttäjätunnuksen tai istuntoon tallennetun tai evästeeseen tallennetun ID:n perusteella. Tässä olen jo tallentanut roolin tiketin käyttäjädataan, joten otetaan se tiketistä.

Tarvittaessa lisää annotaatioattribuutit validoituun ohjaimeen tai toimintoon, esimerkiksi tämä toiminto sallii pääsyn vain RoleID:llä 1, 2 tai 3, ja käyttäjän nykyinen RoleID on (7, 1, 8), mikä tarkoittaa, että käyttäjällä on oikeus käyttää sitä.

P.S. :1. Tiketti tallennetaan evästeen vanhenemisajankohtaan, ja jos selain on suljettu muistamaan nykyinen tiketti, parametrit voidaan asettaa, kun FormsAuthenticationTicket on otettu käyttöön.

2. Rolin hankinta voidaan lukea suoraan tietokannasta ilman, että sitä tallennetaan tiketin userDataan, ja userData voi tallentaa muuta tietoa.

3. Jos haluat joustavasti konfiguroida Controllerin ja Actionin sallittuja käyttörooleja, voit mukauttaa OnAuthorization-menetelmää AuthorizeAttribute-ohituksessa, jossa metodia käytetään

      Lue nykyisellä sivulla sallittu rooli-ID ja tarkista se nykyisen käyttäjän RoleID:n mukaan. Näin toteutuu roolin joustava kokoonpano.

            4. Tiketin tiedot tallennetaan lopulta evästeeseen, ja turvallisuus on edelleen omasta harkinnastasi, mielestäni on parempi tallentaa UserID ja RoleID istuntoon.





Edellinen:Baidu-kartta: Ratkaise pisteiden aggregaatiomarkkerin viiveratkaisu
Seuraava:Rekrytoi teknisiä kumppaneita
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com