FBA-t és SQL Server: Egy szerelmi történet

Kollégám már dolgozik egy kijelző FBA-környezetben. Többek között, a kijelzőt húzza néhány adat SQL server. A nagy terv a projekt azt diktálja, hogy egy DBA szintű adatbiztonság állítja be az SQL (szemben egy felhasználói azonosítót beágyazása egy SQL-lekérdezés, vagy néhány más megközelítés).

A probléma az, hogy SQL server nem tud semmit a FBA-környezetünk, hogy nem bíznak bennünk. Ezt a problémát megoldottuk., hiányzik a jobb szót, kézzel egy AD felhasználó megszemélyesítése, úgy, hogy mi lehet csatlakoztatni az SQL, SQL-adatok szintű biztonság együttműködik, hogy.

Annak ellenére, hogy FBA az ASP.NET szolgáltatása, SharePoint-nemzet, a nép is tanított a különböző keresőmotorok, ha az űrlapalapú Hitelesítéshez weblekérdezésre, azt jelenti, ön akar tud hogyan viselkedni configure FBA SharePoint. Én nem sikerült megtalálni minden olyan információt, hogyan lehet engedélyezni az FBA-orientált ASP.NET-alkalmazás, hogy mi szükséges módon kommunikálni az SQL keresés.

Ennek kutatása során, mi újra olvasni ezt a cikket: Az ASP.NET megszemélyesítés

Több kutatás vezetett bennünket, hogy ezt a cikket codproject: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx

Hogy segített írni a kódot, amely már tartalmazott, alábbiakban. -A ' nem a leg--bb elegáns cucc, de ez munkás. Remélem Ön talál ez hasznos.

Itt van a kód, hogy együtt dolgozott velünk:

védett Érvénytelen btnSearchCarrier_Click(Tárgy, EventArgs e betű)
 {
 próbálja meg
 {
 ImpersonateUser iU = új ImpersonateUser();
 // TODO: Cserélje ki a hitelesítő adatok iU.Impersonate("Tartománynév", "Jelszó", "Jelszó");

//
 KÓD
//

 iU.Undo();
 }
 fogási (Kivétel ex)
 {

 }
 }

// Megszemélyesítés osztály említettek használatával.

nyilvános osztály ImpersonateUser
 {
 [DllImport("advapi32.dll", SetLastError = igaz)]
 nyilvános statikus külső logikai LogonUser(
 Karakterlánc-lpszUsername,
 Karakterlánc-lpszDomain,
 Karakterlánc-lpszPassword,
 int dwLogonType,
 int dwLogonProvider,
 ref IntPtr phToken);

 [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
 privát külső statikus bool CloseHandle(IntPtr fogantyú);

 privát statikus IntPtr tokenHandle = új IntPtr(0);
 privát statikus WindowsImpersonationContext impersonatedUser;

 // Ha ezt a kódot beépíteni a DLL-je, Győződjön meg róla, hogy a kereslet, hogy
 // FullTrust fut.
 [PermissionSetAttribute(SecurityAction.Demand, Név = "FullTrust")]
 nyilvános Érvénytelen megszemélyesítése(karakterlánc-tartománynév, karakterlánc-userName, karakterlánc, password karakterlánc)
 {
 próbálja meg
 {

 // A nem felügyelt LogonUser függvény segítségével a felhasználó tokent kap
 // a megadott felhasználó, tartomány, és a jelszó.
 CONST int LOGON32_PROVIDER_DEFAULT = 0;

 // Ez a paraméter átadás okoz LogonUser, hogy hozzon létre egy elsődleges token.
 CONST int LOGON32_LOGON_INTERACTIVE = 2;
 tokenHandle = IntPtr.Zero;

 // Lépés -1 Hívja LogonUser egy hozzáférési tokent leírót beszerezni.
 bool returnValue = LogonUser(
 userName,
 Tartománynév,
 jelszó,
 LOGON32_LOGON_INTERACTIVE,
 LOGON32_PROVIDER_DEFAULT,
 ref tokenHandle); // tokenHandle - új biztonsági token

 Ha (hamis == returnValue)
 {
 int ret = Marshal.GetLastWin32Error();
 Console.WriteLine("LogonUser hívás nem sikerült, hibakód: : " +
 RET);
 dobja új System.ComponentModel.Win32Exception(RET);
 }

 // Lépés - 2
 WindowsIdentity newId = új WindowsIdentity(tokenHandle);
 // Lépés -3
 impersonatedUser = newId.Impersonate();

 }
 fogási (Kivétel ex)
 {
 Console.WriteLine("Kivétel történt. " + ex.Üzenet);
 }
 }


 /// <Összefoglaló>
 /// Megáll a megszemélyesítés
 /// </Összefoglaló>
 nyilvános Érvénytelen visszavonás()
 {
 impersonatedUser.Undo();
 // Ingyenes a tokenek.
 Ha (tokenHandle != IntPtr.Zero)
 CloseHandle(tokenHandle);
 }
 }

</vége>

Subscribe to my blog.

Technorati Tags:

One thought on „FBA-t és SQL Server: Egy szerelmi történet

  1. David korai
    Szomorú részére kiplakátolás ez független kérdés, de én nem tudott kiszámít hogyan viselkedni küld Önnek egy e-mailt, ez a blog.
    Volt egy korábbi post, ahol Ön felajánl egy nagyszerű módja annak, hogy egy könyvtár címkézetlen adatok szűrést. Van olyan gondolatok, hogy hogyan lehet meg a címkézetlen dokumentumok listáját egy teljes dokumentumtárban? Egy üres mezője a speciális keresés nem hoz eredményt.
    Válasz

hagyj válaszüzenetet

Az e-mail címed nem kerül nyilvánosságra. Kötelező kitölteni *