Principy služeb ověřování a používání profilu technologie ASP.NET AJAX
Ověřovací služba umožňuje uživatelům zadat přihlašovací údaje, aby mohli přijímat ověřovací soubor cookie, a je službou brány, která povoluje vlastní profily uživatelů poskytované ASP.NET. Použití ověřovací služby ASP.NET AJAX je kompatibilní se standardním ověřováním ASP.NET Forms, takže aplikace, které aktuálně používají ověřování pomocí formulářů (například s ovládacím prvku Login), nebudou upgradem na ověřovací službu AJAX narušeny.
Úvod
Jako součást rozhraní .NET Framework 3.5 společnost Microsoft poskytuje velký upgrade prostředí; K dispozici je nejen nové vývojové prostředí, ale také nové funkce Language-Integrated Query (LINQ) a další vylepšení jazyka. Kromě toho jsou některé známé funkce jiných sad nástrojů, zejména rozšíření ASP.NET AJAX, zahrnuty jako prvotřídní členy základní knihovny tříd rozhraní .NET Framework. Tato rozšíření umožňují mnoho nových bohatých klientských funkcí, včetně částečného vykreslování stránek bez nutnosti aktualizace celé stránky, možnosti přístupu k webovým službám prostřednictvím klientského skriptu (včetně rozhraní API pro profilaci ASP.NET) a rozsáhlého rozhraní API na straně klienta navrženého tak, aby odráželo mnoho schémat řízení, která se zobrazují v ASP.NET sadě ovládacích prvků na straně serveru.
Tento dokument white paper se zabývá implementací a používáním služeb ASP.NET Profiling a Forms Authentication, protože jsou zpřístupněny rozšířeními Microsoft ASP.NET AJAX. Díky rozšířením AJAX je ověřování formulářů neuvěřitelně snadné, protože (stejně jako služba profilace) je zpřístupněna prostřednictvím skriptu proxy webové služby. Rozšíření AJAX také podporují vlastní ověřování prostřednictvím třídy AuthenticationServiceManager.
Tento dokument white paper vychází z verze Beta 2 sady Visual Studio 2008 a rozhraní .NET Framework 3.5. Tento dokument white paper také předpokládá, že budete pracovat se sadou Visual Studio 2008 Beta 2, nikoli se sadou Visual Web Developer Express, a budete poskytovat návody podle uživatelského rozhraní sady Visual Studio. Některé ukázky kódu můžou využívat šablony projektů, které nejsou k dispozici v aplikaci Visual Web Developer Express.
Profily a ověřování
Profily a ověřovací služby Microsoft ASP.NET poskytuje ověřovací systém ASP.NET Forms a jsou standardními součástmi ASP.NET. Rozšíření ASP.NET AJAX poskytují přístup ke skriptům k těmto službám prostřednictvím proxy skriptů prostřednictvím poměrně jednoduchého modelu v rámci oboru názvů Sys.Services klientské knihovny AJAX.
Ověřovací služba umožňuje uživatelům zadat přihlašovací údaje, aby mohli přijímat ověřovací soubor cookie, a je službou brány, která povoluje vlastní profily uživatelů poskytované ASP.NET. Použití ověřovací služby ASP.NET AJAX je kompatibilní se standardním ověřováním ASP.NET Forms, takže aplikace, které aktuálně používají ověřování pomocí formulářů (například s ovládacím prvku Login), nebudou upgradem na ověřovací službu AJAX narušeny.
Služba profile umožňuje automatickou integraci a ukládání uživatelských dat na základě členství poskytovaného ověřovací službou. Uložená data jsou určena souborem web.config a správu dat zpracovávají různí poskytovatelé služeb profilace. Stejně jako u ověřovací služby je služba profilů AJAX kompatibilní se standardní službou profilů ASP.NET, takže stránky, které aktuálně obsahují funkce služby ASP.NET Profile, by neměly být poškozeny zahrnutím podpory AJAX.
Začlenění samotných služeb ověřování a profilace ASP.NET do aplikace je mimo rozsah tohoto dokumentu white paper. Další informace o tomto tématu najdete v referenčních informacích ke knihovně MSDN v článku Správa uživatelů pomocí členství na adrese https://msdn.microsoft.com/library/tw292whz.aspx. ASP.NET obsahuje také nástroj pro automatické nastavení členství s SQL Server, což je výchozí poskytovatel ověřovací služby pro členství ASP.NET. Další informace najdete v článku ASP.NET SQL Server Registration Tool (Aspnet_regsql.exe) na adrese https://msdn.microsoft.com/library/ms229862(vs.80).aspx.
Použití ověřovací služby ASP.NET AJAX
V souboru web.config musí být povolená ověřovací služba ASP.NET AJAX:
<system.web.extensions>
<scripting>
<webServices>
<authenticationService enabled="true" />
</webServices>
</scripting>
</system.web.extensions>
Ověřovací služba vyžaduje povolení ověřování ASP.NET Forms a vyžaduje, aby byly v klientském prohlížeči povoleny soubory cookie (skript nemůže povolit relaci bez souborů cookie, protože relace bez souborů cookie vyžadují parametry adresy URL).
Jakmile je ověřovací služba AJAX povolena a nakonfigurována, klientský skript může okamžitě využít výhod objektu Sys.Services.AuthenticationService. Klientský skript bude primárně chtít využít login
výhod metody a isLoggedIn
vlastnosti. Existuje několik vlastností, které poskytují výchozí hodnoty pro metodu přihlášení, která může přijímat velké množství parametrů.
Sys.Services.AuthenticationService – členové
Metoda přihlášení:
Metoda login() zahájí požadavek na ověření přihlašovacích údajů uživatele. Tato metoda je asynchronní a neblokuje provádění.
Parametry:
Název parametru | Význam |
---|---|
userName | Povinná hodnota. Uživatelské jméno, které se má ověřit. |
heslo | Volitelné (výchozí hodnota je null). Heslo uživatele. |
isPersistent | Volitelné (výchozí hodnota je false). Jestli má ověřovací soubor cookie uživatele v relacích přetrvávat. Pokud je false, uživatel se odhlásí, když je prohlížeč zavřený nebo vyprší platnost relace. |
Redirecturl | Volitelné (výchozí hodnota je null). Adresa URL, na která se má prohlížeč při úspěšném ověření přesměrovat. Pokud má tento parametr hodnotu null nebo prázdný řetězec, nedojde k žádnému přesměrování. |
customInfo | Volitelné (výchozí hodnota je null). Tento parametr je aktuálně nepoužívaný a je vyhrazen pro budoucí použití. |
loginCompletedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat po úspěšném dokončení přihlášení. Pokud je zadaný, tento parametr přepíše vlastnost defaultLoginCompleted. |
failedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat, když se přihlášení nezdařilo. Pokud je zadaný, tento parametr přepíše vlastnost defaultFailedCallback. |
Usercontext | Volitelné (výchozí hodnota je null). Vlastní data uživatelského kontextu, která by měla být předána funkcím zpětného volání. |
Návratová hodnota:
Tato funkce neobsahuje návratovou hodnotu. Po dokončení volání této funkce je však zahrnuta řada chování:
- Aktuální stránka se buď aktualizuje, nebo se změní, pokud
redirectUrl
parametr neměl hodnotu null ani prázdný řetězec. - Pokud však parametr měl hodnotu null nebo prázdný řetězec,
loginCompletedCallback
je parametr nebodefaultLoginCompletedCallback
vlastnost volána. - Pokud volání webové služby selže,
failedCallback
je volána vlastnost parametrudefaultFailedCallback
.
Metoda odhlášení:
Metoda logout() odebere soubor cookie přihlašovacích údajů a odhlásí aktuálního uživatele z webové aplikace.
Parametry:
Název parametru | Význam |
---|---|
Redirecturl | Volitelné (výchozí hodnota je null). Adresa URL, na která se má prohlížeč při úspěšném ověření přesměrovat. Pokud má tento parametr hodnotu null nebo prázdný řetězec, nedojde k žádnému přesměrování. |
logoutCompletedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat po úspěšném dokončení odhlášení. Pokud je zadaný, tento parametr přepíše vlastnost defaultLogoutCompleted. |
failedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat, když se přihlášení nezdařilo. Pokud je zadaný, tento parametr přepíše vlastnost defaultFailedCallback. |
Usercontext | Volitelné (výchozí hodnota je null). Vlastní data uživatelského kontextu, která by měla být předána funkcím zpětného volání. |
Návratová hodnota:
Tato funkce neobsahuje návratovou hodnotu. Po dokončení volání této funkce je však zahrnuta řada chování:
- Aktuální stránka se buď aktualizuje, nebo se změní, pokud
redirectUrl
parametr neměl hodnotu null ani prázdný řetězec. - Pokud však parametr měl hodnotu null nebo prázdný řetězec,
logoutCompletedCallback
je parametr nebodefaultLogoutCompletedCallback
vlastnost volána. - Pokud volání webové služby selže,
failedCallback
je volána vlastnost parametrudefaultFailedCallback
.
vlastnost defaultFailedCallback (get, set):
Tato vlastnost určuje funkci, která by měla být volána, pokud dojde k selhání komunikace s webovou službou. Měl by obdržet delegáta (nebo odkaz na funkci).
Odkaz na funkci určený touto vlastností by měl mít následující podpis:
function AuthenticationFailureCallback(error, userContext, methodName);
Parametry:
Název parametru | Význam |
---|---|
error | Určuje informace o chybě. |
Usercontext | Určuje kontextové informace uživatele zadané při zavolání funkce přihlášení nebo odhlášení. |
Methodname | Název metody volání. |
vlastnost defaultLoginCompletedCallback (get, set):
Tato vlastnost určuje funkci, která by měla být volána po dokončení volání webové služby přihlášení. Měl by obdržet delegáta (nebo odkaz na funkci).
Odkaz na funkci určený touto vlastností by měl mít následující podpis:
function AuthenticationLoginCompletedCallback(validCredentials, userContext, methodName);
Parametry:
Název parametru | Význam |
---|---|
validCredentials | Určuje, jestli uživatel zadal platné přihlašovací údaje. true pokud se uživatel úspěšně přihlásil; jinak false . |
Usercontext | Určuje informace o kontextu uživatele zadané při zavolání přihlašovací funkce. |
Methodname | Název metody volání. |
vlastnost defaultLogoutCompletedCallback (get, set):
Tato vlastnost určuje funkci, která by měla být volána po dokončení volání webové služby pro odhlášení. Měl by obdržet delegáta (nebo odkaz na funkci).
Odkaz na funkci určený touto vlastností by měl mít následující podpis:
function AuthenticationLogoutCompletedCallback(result, userContext, methodName);
Parametry:
Název parametru | Význam |
---|---|
result | Tento parametr bude vždy null ; je vyhrazen pro budoucí použití. |
Usercontext | Určuje informace o kontextu uživatele zadané při zavolání přihlašovací funkce. |
Methodname | Název metody volání. |
vlastnost isLoggedIn (get):
Tato vlastnost získá aktuální stav ověřování uživatele; Je nastaven objektem ScriptManager během požadavku stránky.
Tato vlastnost vrátí true
, pokud je uživatel aktuálně přihlášený. V opačném případě vrátí false
hodnotu .
vlastnost path (get, set):
Tato vlastnost programově určuje umístění ověřovací webové služby. Dá se použít k přepsání výchozího zprostředkovatele ověřování a také jedné sady deklarativně ve vlastnosti Path podřízeného uzlu AuthenticationService ovládacího prvku ScriptManager (další informace najdete v tématu Použití vlastního zprostředkovatele ověřovací služby níže).
Umístění výchozí ověřovací služby se nezmění. ASP.NET AJAX však umožňuje určit umístění webové služby, která poskytuje stejné rozhraní třídy jako ASP.NET proxy ověřovací služby AJAX.
Všimněte si také, že tato vlastnost by neměla být nastavena na hodnotu, která směruje požadavek skriptu mimo aktuální web. Vzhledem k tomu, že aktuální aplikace by neobdržela ověřovací přihlašovací údaje, bylo by to zbytečné; technologie AJAX by také neměla odesílat požadavky mezi lokalitami a může generovat výjimku zabezpečení v klientském prohlížeči.
Tato vlastnost je String
objekt představující cestu k ověřovací webové službě.
vlastnost časového limitu (get, set):
Tato vlastnost určuje dobu čekání na ověřovací službu, než se předpokládá, že žádost o přihlášení selhala. Pokud časový limit vyprší při čekání na dokončení volání, zavolá se zpětné volání neúspěšného požadavku a volání se nedokončí.
Tato vlastnost je objekt představující Number
počet milisekund čekání na výsledky z ověřovací služby.
Ukázka kódu: Přihlášení k ověřovací službě
Následující kód je příkladem ASP.NET stránce s jednoduchým voláním skriptu pro metody přihlášení a odhlášení třídy AuthenticationService.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Login Example</title>
<script type="text/javascript">
function Login()
{
var userTextbox = $get("txtUser");
var passTextbox = $get("txtPassword");
Sys.Services.AuthenticationService.login(userTextbox.value,
passTextbox.value, false, null, null, LoginServiceCompleted,
LoginServiceFailed, "Context Info");
}
function Logout()
{
Sys.Services.AuthenticationService.logout(null, LogoutServiceCompleted,
LoginServiceFailed, "Context Info");
}
function LoginServiceFailed(error, userContext, methodName)
{
alert('There was an error with the authentication service:\n\n' + error);
}
function LoginServiceCompleted(validCredentials, userContext, methodName)
{
if (validCredentials)
{
alert('Great! You successfully logged in.');
}
else
{
alert('Oops! You gave us bad credentials!');
}
}
function LogoutServiceCompleted(result, userContext, methodName)
{
alert('You have been logged out from the web site.');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnableScriptLocalization="true">
</asp:ScriptManager>
<div>
<asp:TextBox ID="txtUser" runat="Server"></asp:TextBox>
<br />
<asp:TextBox ID="txtPassword" runat="Server" TextMode="Password"/>
<br />
<asp:Button Text="Log in" ID="btnLogin" runat="server"
OnClientClick="Login(); return false;" />
</div>
</form>
</body>
</html>
Přístup k datům profilace ASP.NET přes AJAX
Služba profilace ASP.NET je také zpřístupněna prostřednictvím rozšíření ASP.NET AJAX. Vzhledem k tomu, že služba profilace ASP.NET poskytuje bohaté a podrobné rozhraní API pro ukládání a načítání uživatelských dat, může to být vynikající nástroj pro produktivitu.
Služba profilu musí být povolena v web.config. ve výchozím nastavení to není. Chcete-li to provést, ujistěte se, že profileService
podřízený prvek má povoleno= true zadané v web.config a že jste zadali, které vlastnosti lze číst nebo zapisovat následujícím způsobem:
<system.web.extensions>
<scripting>
<webServices>
<profileService enabled="true"
readAccessProperties= Name,Address,BackgroundColor
writeAccessProperties= BackgroundColor />
</webServices>
</scripting>
</system.web.extensions>
Musí být také nakonfigurována služba profilu. Přestože je konfigurace služby profilace mimo rozsah tohoto dokumentu white paper, je vhodné poznamenat, že skupiny definované v nastavení konfigurace profilu budou přístupné jako dílčí vlastnosti názvu skupiny. Například se zadaným oddílem profilu:
<profile enabled="true">
<properties>
<add name="Name" type="System.String"/>
<group name="Address">
<add name="Line1" type="System.String"/>
<add name="Line2" type="System.String"/>
<add name="City" type="System.String"/>
<add name="State" type="System.String"/>
<add name="Zip" type="System.String"/>
</group>
<add name="BackgroundColor" type="System.Drawing.Color"/>
</properties>
</profile>
Klientský skript by mohl přistupovat k Name, Address.Line1, Address.Line2, Address.City, Address.State, Address.Zip a BackgroundColor jako vlastnosti pole vlastností ProfileService třídy.
Jakmile je služba profilace AJAX nakonfigurována, bude okamžitě k dispozici na stránkách; Bude však nutné ho před použitím načíst jednou.
Sys.Services.ProfileService – členy
pole properties (vlastnosti):
Pole vlastností zveřejňuje všechna nakonfigurovaná data profilu jako podřízené vlastnosti, na které lze odkazovat konvencí dot-operator-name. Vlastnosti, které jsou podřízené skupinám vlastností, se označují jako GroupName.PropertyName. V příkladu konfigurace profilu uvedené výše můžete k získání stavu uživatele použít následující identifikátor:
Sys.Services.ProfileService.properties.Address.State
metoda načítání:
Načte vybraný seznam nebo všechny vlastnosti ze serveru.
Parametry:
Název parametru | Význam |
---|---|
propertyNames | Volitelné (výchozí hodnota je null). Vlastnosti, které se mají načíst ze serveru. |
loadCompletedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat při načítání, byla dokončena. |
failedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat, pokud dojde k chybě. |
Usercontext | Volitelné (výchozí hodnota je null). Kontextové informace, které mají být předány funkci zpětného volání. |
Funkce load nemá návratovou hodnotu. Pokud se volání úspěšně dokončilo, zavolá buď loadCompletedCallback
parametr, nebo defaultLoadCompletedCallback
vlastnost. Pokud volání selhalo nebo vypršel časový limit, bude volána buď failedCallback
parametr, nebo defaultFailedCallback
vlastnost.
propertyNames
Pokud parametr není zadán, načtou se ze serveru všechny vlastnosti nakonfigurované pro čtení.
metoda save:
Metoda save() uloží zadaný seznam vlastností (nebo všechny vlastnosti) do profilu ASP.NET uživatele.
Parametry:
Název parametru | Význam |
---|---|
propertyNames | Volitelné (výchozí hodnota je null). Vlastnosti, které se mají uložit na server. |
saveCompletedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat při ukládání, byla dokončena. |
failedCallback | Volitelné (výchozí hodnota je null). Funkce, která se má volat, pokud dojde k chybě. |
Usercontext | Volitelné (výchozí hodnota je null). Kontextové informace, které mají být předány funkci zpětného volání. |
Funkce save nemá návratovou hodnotu. Pokud se volání úspěšně dokončí, zavolá buď saveCompletedCallback
parametr, nebo defaultSaveCompletedCallback
vlastnost. Pokud volání selhalo nebo vypršel časový limit, failedCallback
zavolá se vlastnost nebo defaultFailedCallback
.
propertyNames
Pokud je parametr null, všechny vlastnosti profilu se odešlou na server a server rozhodne, které vlastnosti lze uložit a které ne.
vlastnost defaultFailedCallback (get, set):
Tato vlastnost určuje funkci, která by měla být volána, pokud dojde k selhání komunikace s webovou službou. Měl by obdržet delegáta (nebo odkaz na funkci).
Odkaz na funkci určený touto vlastností by měl mít následující podpis:
function AuthenticationFailureCallback(error, userContext, methodName);
Parametry:
Název parametru | Význam |
---|---|
Chyba | Určuje informace o chybě. |
Usercontext | Určuje kontextové informace uživatele poskytnuté při zavolání funkce načtení nebo uložení. |
Methodname | Název metody volání. |
vlastnost defaultSaveCompleted (get, set):
Tato vlastnost určuje funkci, která by měla být volána po dokončení uložení dat profilu uživatele. Měl by obdržet delegáta (nebo odkaz na funkci).
Odkaz na funkci určený touto vlastností by měl mít následující podpis:
function ProfileSaveComplete(numPropsSaved, userContext, methodName);
Parametry:
Název parametru | Význam |
---|---|
numPropsSaved | Určuje počet vlastností, které byly uloženy. |
Usercontext | Určuje kontextové informace uživatele poskytnuté při zavolání funkce načtení nebo uložení. |
Methodname | Název metody volání. |
vlastnost defaultLoadCompleted (get, set):
Tato vlastnost určuje funkci, která by měla být volána po dokončení načtení dat profilu uživatele. Měl by obdržet delegáta (nebo odkaz na funkci).
Odkaz na funkci určený touto vlastností by měl mít následující podpis:
function ProfileLoadComplete(numPropsLoaded, userContext, methodName);
Parametry:
Název parametru | Význam |
---|---|
numPropsLoaded | Určuje počet načtených vlastností. |
Usercontext | Určuje kontextové informace uživatele poskytnuté při zavolání funkce načtení nebo uložení. |
Methodname | Název metody volání. |
vlastnost path (get, set):
Tato vlastnost programově určuje umístění webové služby profilu. Dá se použít k přepsání výchozího zprostředkovatele služby profilu a také jedné sady deklarativně ve vlastnosti Path ovládacího prvku ScriptManager ProfileService podřízeného uzlu.
Všimněte si, že umístění výchozí služby profilu se nezmění. ASP.NET AJAX však umožňuje určit umístění webové služby, která poskytuje stejné rozhraní třídy jako ASP.NET proxy ověřovací služby AJAX.
Všimněte si také, že tato vlastnost by neměla být nastavena na hodnotu, která směruje požadavek skriptu mimo aktuální web. Technologie AJAX by neměla odesílat žádosti mezi lokalitami a může v klientském prohlížeči generovat výjimku zabezpečení.
Tato vlastnost je String
objekt představující cestu k webové službě profilu.
vlastnost časového limitu (get, set):
Tato vlastnost určuje dobu čekání na službu profilu, než se předpokládá, že požadavek na načtení nebo uložení selhal. Pokud časový limit vyprší při čekání na dokončení volání, zavolá se zpětné volání neúspěšného požadavku a volání se nedokončí.
Tato vlastnost je Number
objekt představující počet milisekund čekání na výsledky z profilové služby.
Ukázka kódu: Načítání dat profilu při načítání stránky
Následující kód zkontroluje, jestli je uživatel ověřený, a pokud ano, načte upřednostňovanou barvu pozadí uživatele jako stránku.
function Page_Load()
{
if (Sys.Services.AuthenticationService.get_isLoggedIn())
{
Sys.Services.ProfileService.load();
}
}
function ProfileLoaded(numPropsLoaded, userContext, methodName)
{
document.documentElement.style.backgroundColor = Sys.Services.ProfileService.properties.BackgroundColor;
}
Použití vlastního zprostředkovatele ověřovací služby
Rozšíření ASP.NET AJAX umožňují vytvořit vlastního zprostředkovatele služby ověřování skriptů zveřejněním funkcí prostřednictvím vlastní webové služby. Aby bylo možné použít webovou službu, musí být vystaveny dvě metody Login
a Logout
; a tyto metody musí být zadány se stejnými signaturami metody jako výchozí ASP.NET webové služby AJAX Authentication.
Po vytvoření vlastní webové služby budete muset zadat cestu k ní, a to buď deklarativně na stránce, programově v kódu nebo prostřednictvím klientského skriptu.
Postup deklarativně nastavit cestu:
Pokud chcete nastavit cestu deklarativně, zahrňte podřízený objekt AuthenticationService objektu ScriptManager na stránce ASP.NET:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<AuthenticationService Path="~/AuthService.asmx" />
</asp:ScriptManager>
Nastavení cesty v kódu:
Pokud chcete cestu nastavit programově, zadejte cestu prostřednictvím instance správce skriptů:
protected void Page_Load(object sender, EventArgs e)
{
this.ScriptManager1.AuthenticationService.Path = "~/AuthService.asmx";
}
Nastavení cesty ve skriptu:
Pokud chcete nastavit cestu programově ve skriptu, použijte path
vlastnost Třídy AuthenticationService:
function Login()
{
var userTextbox = $get("txtUser");
var passTextbox = $get("txtPassword");
Sys.Services.AuthenticationService.set_path("./AuthService.asmx");
Sys.Services.AuthenticationService.login(userTextbox.value, passTextbox.value, false, null, null, LoginServiceCompleted, LoginServiceFailed, "Context Info");
}
Ukázková webová služba pro vlastní ověřování
<%@ WebService Language="C#" Class="AuthService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[ScriptService]
[WebService]
public class AuthService : WebService
{
[WebMethod]
public bool Login(string userName, string password, bool createCookie)
{
Session["LoggedInUser"] = userName;
return true;
}
[WebMethod]
public void Logout()
{
Session.Abandon();
}
}
Souhrn
ASP.NET služby – konkrétně profilace, členství a ověřovací služby – jsou snadno vystaveny JavaScriptu v klientském prohlížeči. To vývojářům umožňuje bezproblémovou integraci kódu na straně klienta s ověřovacím mechanismem, aniž by museli záviset na ovládacích prvcích, jako je UpdatePanels, aby to bylo těžké. Data profilu lze také chránit před klientem pomocí nastavení konfigurace webu; Ve výchozím nastavení nejsou k dispozici žádná data a vývojáři se musí přihlásit k vlastnostem profilu.
Kromě toho mohou vývojáři vytvářet zjednodušené implementace webových služeb s ekvivalentními podpisy metod a vytvářet vlastní zprostředkovatele skriptů pro tyto vnitřní ASP.NET služby. Podpora těchto technik zjednodušuje vývoj bohatých klientských aplikací a současně poskytuje vývojářům širokou škálu flexibility pro splnění konkrétních potřeb.
Životopis
Scott Cate pracuje s webovými technologiemi Microsoftu od roku 1997 a je prezidentem myKB.com (www.myKB.com), kde se specializuje na psaní ASP.NET aplikací zaměřených na softwarová řešení znalostní báze Knowledge Base. Scotta můžete kontaktovat prostřednictvím e-mailu nebo scott.cate@myKB.com jeho blogu na ScottCate.com