Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Scott Cate
Layanan Autentikasi memungkinkan pengguna untuk memberikan kredensial untuk menerima cookie autentikasi, dan merupakan layanan gateway untuk mengizinkan profil pengguna kustom yang disediakan oleh ASP.NET. Penggunaan layanan autentikasi AJAX ASP.NET kompatibel dengan autentikasi ASP.NET Formulir standar, sehingga aplikasi yang saat ini menggunakan autentikasi Formulir (seperti dengan kontrol Masuk) tidak akan rusak dengan meningkatkan ke layanan autentikasi AJAX.
Pengantar
Sebagai bagian dari .NET Framework 3.5, Microsoft memberikan peningkatan lingkungan yang cukup besar; tidak hanya lingkungan pengembangan baru yang tersedia, tetapi fitur Language-Integrated Query (LINQ) baru dan peningkatan bahasa lainnya akan datang. Selain itu, beberapa fitur akrab dari seperangkat alat lain, terutama ekstensi AJAX ASP.NET, disertakan sebagai anggota kelas satu .NET Framework Base Class Library. Ekstensi ini memungkinkan banyak fitur klien kaya baru, termasuk penyajian sebagian halaman tanpa memerlukan refresh halaman penuh, kemampuan untuk mengakses Layanan Web melalui skrip klien (termasuk API pembuatan profil ASP.NET), dan API sisi klien ekstensif yang dirancang untuk mencerminkan banyak skema kontrol yang terlihat dalam set kontrol sisi server ASP.NET.
Laporan resmi ini melihat implementasi dan penggunaan layanan ASP.NET Profiling dan Autentikasi Formulir saat diekspos oleh Microsoft ASP.NET Ekstensi AJAX Ekstensi AJAX membuat autentikasi Formulir sangat mudah didukung, karena itu (serta Layanan Pembuatan Profil) diekspos melalui skrip proksi Layanan Web. Ekstensi AJAX juga mendukung autentikasi kustom melalui kelas AuthenticationServiceManager.
Laporan resmi ini didasarkan pada rilis Beta 2 visual Studio 2008 dan .NET Framework 3.5. Laporan resmi ini juga mengasumsikan bahwa Anda akan bekerja dengan Visual Studio 2008 Beta 2, bukan Visual Web Developer Express, dan akan memberikan panduan sesuai dengan antarmuka pengguna Visual Studio. Beberapa sampel kode mungkin menggunakan templat proyek tidak tersedia di Visual Web Developer Express.
Profil dan Autentikasi
Layanan Profil dan Autentikasi ASP.NET Microsoft disediakan oleh sistem Autentikasi Formulir ASP.NET, dan merupakan komponen standar ASP.NET. Ekstensi AJAX ASP.NET menyediakan akses skrip ke layanan ini melalui proksi skrip, melalui model yang cukup mudah di bawah namespace layanan Sys.Services dari pustaka AJAX klien.
Layanan Autentikasi memungkinkan pengguna untuk memberikan kredensial untuk menerima cookie autentikasi, dan merupakan layanan gateway untuk mengizinkan profil pengguna kustom yang disediakan oleh ASP.NET. Penggunaan layanan autentikasi AJAX ASP.NET kompatibel dengan autentikasi ASP.NET Formulir standar, sehingga aplikasi yang saat ini menggunakan autentikasi Formulir (seperti dengan kontrol Masuk) tidak akan rusak dengan meningkatkan ke layanan autentikasi AJAX.
Layanan Profil memungkinkan integrasi otomatis dan penyimpanan data pengguna berdasarkan keanggotaan seperti yang disediakan oleh layanan Autentikasi. Data yang disimpan ditentukan oleh file web.config, dan berbagai penyedia layanan pembuatan profil menangani manajemen data. Seperti halnya layanan Autentikasi, layanan Profil AJAX kompatibel dengan layanan profil ASP.NET standar, sehingga halaman yang saat ini menggabungkan fitur layanan Profil ASP.NET tidak boleh dipecah dengan menyertakan dukungan AJAX.
Memasukkan layanan Autentikasi dan Profiling ASP.NET sendiri ke dalam aplikasi berada di luar cakupan laporan resmi ini. Untuk informasi selengkapnya tentang topik ini, lihat artikel referensi Pustaka MSDN Mengelola Pengguna dengan Menggunakan Keanggotaan di https://msdn.microsoft.com/library/tw292whz.aspx. ASP.NET juga menyertakan utilitas untuk menyiapkan Keanggotaan secara otomatis dengan SQL Server, yang merupakan penyedia layanan autentikasi default untuk Keanggotaan ASP.NET. Untuk informasi selengkapnya, lihat artikel alat pendaftaran ASP.NET SQL Server (Aspnet_regsql.exe) di https://msdn.microsoft.com/library/ms229862(vs.80).aspx.
Menggunakan layanan autentikasi AJAX ASP.NET
Layanan Autentikasi AJAX ASP.NET harus diaktifkan dalam file web.config:
<system.web.extensions>
<scripting>
<webServices>
<authenticationService enabled="true" />
</webServices>
</scripting>
</system.web.extensions>
Layanan Autentikasi mengharuskan autentikasi formulir ASP.NET diaktifkan dan mengharuskan cookie diaktifkan di browser klien (skrip tidak dapat mengaktifkan sesi tanpa cookie karena sesi tanpa cookie memerlukan parameter URL).
Setelah layanan autentikasi AJAX diaktifkan dan dikonfigurasi, skrip klien dapat segera memanfaatkan objek Sys.Services.AuthenticationService. Terutama, skrip klien ingin memanfaatkan login metode dan isLoggedIn properti . Beberapa properti ada untuk menyediakan default untuk metode masuk, yang dapat menerima sejumlah besar parameter.
Anggota Sys.Services.AuthenticationService
metode masuk:
Metode login() memulai permintaan untuk mengautentikasi kredensial pengguna. Metode ini asinkron dan tidak memblokir eksekusi.
Parameter:
| Nama Parameter | Makna |
|---|---|
| userName | Wajib diisi. Nama pengguna untuk mengautentikasi. |
| kata sandi | Opsional (default ke null). Kata sandi pengguna. |
| isPersistent | Opsional (default ke false). Apakah cookie autentikasi pengguna harus bertahan di seluruh sesi. Jika false, pengguna akan keluar ketika browser ditutup atau sesi kedaluwarsa. |
| redirectUrl | Opsional (default ke null). URL untuk mengalihkan browser ke setelah autentikasi berhasil. Jika parameter ini null atau string kosong, tidak ada pengalihan yang terjadi. |
| customInfo | Opsional (default ke null). Parameter ini saat ini tidak digunakan dan dicadangkan untuk digunakan di masa mendatang. |
| loginCompletedCallback | Opsional (default ke null). Fungsi yang akan dipanggil ketika proses masuk berhasil diselesaikan. Jika ditentukan, parameter ini mengambil alih properti defaultLoginCompleted. |
| failedCallback | Opsional (default ke null). Fungsi yang akan dipanggil ketika proses masuk gagal. Jika ditentukan, parameter ini mengambil alih properti defaultFailedCallback. |
| userContext | Opsional (default ke null). Data konteks pengguna kustom yang harus diteruskan ke fungsi panggilan balik. |
Nilai Yang Dikembalikan:
Fungsi ini tidak menyertakan nilai yang dikembalikan. Namun, sejumlah perilaku disertakan setelah menyelesaikan panggilan ke fungsi ini:
- Halaman saat ini akan disegarkan atau diubah jika
redirectUrlparameter bukan null atau string kosong. - Namun, jika parameter null atau string kosong,
loginCompletedCallbackparameter, ataudefaultLoginCompletedCallbackproperti dipanggil. - Jika panggilan ke layanan web gagal,
failedCallbackparameterdefaultFailedCallbackproperti dipanggil.
metode keluar:
Metode logout() menghapus cookie kredensial dan mengeluarkan pengguna saat ini dari aplikasi web.
Parameter:
| Nama Parameter | Makna |
|---|---|
| redirectUrl | Opsional (default ke null). URL untuk mengalihkan browser ke setelah autentikasi berhasil. Jika parameter ini null atau string kosong, tidak ada pengalihan yang terjadi. |
| logoutCompletedCallback | Opsional (default ke null). Fungsi yang akan dipanggil ketika proses keluar berhasil diselesaikan. Jika ditentukan, parameter ini mengambil alih properti defaultLogoutCompleted. |
| failedCallback | Opsional (default ke null). Fungsi yang akan dipanggil ketika proses masuk gagal. Jika ditentukan, parameter ini mengambil alih properti defaultFailedCallback. |
| userContext | Opsional (default ke null). Data konteks pengguna kustom yang harus diteruskan ke fungsi panggilan balik. |
Nilai Yang Dikembalikan:
Fungsi ini tidak menyertakan nilai yang dikembalikan. Namun, sejumlah perilaku disertakan setelah menyelesaikan panggilan ke fungsi ini:
- Halaman saat ini akan disegarkan atau diubah jika
redirectUrlparameter bukan null atau string kosong. - Namun, jika parameter null atau string kosong,
logoutCompletedCallbackparameter, ataudefaultLogoutCompletedCallbackproperti dipanggil. - Jika panggilan ke layanan web gagal,
failedCallbackparameterdefaultFailedCallbackproperti dipanggil.
properti defaultFailedCallback (dapatkan, atur):
Properti ini menentukan fungsi yang harus dipanggil jika terjadi kegagalan untuk berkomunikasi dengan layanan web. Ini harus menerima delegasi (atau referensi fungsi).
Referensi fungsi yang ditentukan oleh properti ini harus memiliki tanda tangan berikut:
function AuthenticationFailureCallback(error, userContext, methodName);
Parameter:
| Nama Parameter | Makna |
|---|---|
| kesalahan | Menentukan informasi kesalahan. |
| userContext | Menentukan informasi konteks pengguna yang diberikan saat fungsi masuk atau keluar dipanggil. |
| methodName | Nama metode panggilan. |
properti defaultLoginCompletedCallback (dapatkan, atur):
Properti ini menentukan fungsi yang harus dipanggil ketika panggilan layanan web masuk telah selesai. Ini harus menerima delegasi (atau referensi fungsi).
Referensi fungsi yang ditentukan oleh properti ini harus memiliki tanda tangan berikut:
function AuthenticationLoginCompletedCallback(validCredentials, userContext, methodName);
Parameter:
| Nama Parameter | Makna |
|---|---|
| validCredentials | Menentukan apakah pengguna memberikan kredensial yang valid.
true jika pengguna berhasil masuk; jika tidak false. |
| userContext | Menentukan informasi konteks pengguna yang disediakan saat fungsi masuk dipanggil. |
| methodName | Nama metode panggilan. |
properti defaultLogoutCompletedCallback (dapatkan, atur):
Properti ini menentukan fungsi yang harus dipanggil ketika panggilan layanan web keluar telah selesai. Ini harus menerima delegasi (atau referensi fungsi).
Referensi fungsi yang ditentukan oleh properti ini harus memiliki tanda tangan berikut:
function AuthenticationLogoutCompletedCallback(result, userContext, methodName);
Parameter:
| Nama Parameter | Makna |
|---|---|
| hasil | Parameter ini akan nullselalu ; dicadangkan untuk digunakan di masa mendatang. |
| userContext | Menentukan informasi konteks pengguna yang disediakan saat fungsi masuk dipanggil. |
| methodName | Nama metode panggilan. |
properti isLoggedIn (dapatkan):
Properti ini mendapatkan status autentikasi pengguna saat ini; ini diatur oleh objek ScriptManager selama permintaan halaman.
Properti ini mengembalikan true jika pengguna saat ini masuk; jika tidak, properti ini mengembalikan false.
properti jalur (dapatkan, atur):
Properti ini secara terprogram menentukan lokasi layanan web autentikasi. Ini dapat digunakan untuk mengambil alih penyedia autentikasi default, serta satu set secara deklaratif di properti Jalur dari node turunan AuthenticationService kontrol ScriptManager (untuk informasi selengkapnya, lihat topik Menggunakan Penyedia Layanan Autentikasi Kustom di bawah).
Perhatikan bahwa lokasi layanan autentikasi default tidak berubah. Namun, ASP.NET AJAX memungkinkan Anda menentukan lokasi layanan web yang menyediakan antarmuka kelas yang sama dengan proksi layanan autentikasi AJAX ASP.NET.
Perhatikan juga bahwa properti ini tidak boleh diatur ke nilai yang mengarahkan permintaan skrip dari situs saat ini. Karena aplikasi saat ini tidak akan menerima kredensial autentikasi, itu akan sia-sia; juga, teknologi yang mendasar AJAX tidak boleh memposting permintaan lintas situs, dan dapat menghasilkan pengecualian keamanan di browser klien.
Properti ini adalah objek yang String mewakili jalur ke layanan web autentikasi.
properti batas waktu (dapatkan, atur):
Properti ini menentukan lamanya waktu untuk menunggu layanan autentikasi sebelum mengasumsikan permintaan masuk gagal. Jika waktu habis kedaluwarsa saat menunggu panggilan selesai, panggilan balik yang gagal permintaan akan dipanggil, dan panggilan tidak akan selesai.
Properti ini adalah objek yang Number menunjukkan jumlah milidetik untuk menunggu hasil dari layanan autentikasi.
Sampel Kode: Masuk ke Layanan Autentikasi
Markup berikut adalah contoh halaman ASP.NET dengan panggilan skrip sederhana ke metode masuk dan keluar dari kelas 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>
Mengakses Data Pembuatan Profil ASP.NET melalui AJAX
Layanan pembuatan profil ASP.NET juga diekspos melalui Ekstensi AJAX ASP.NET. Karena layanan pembuatan profil ASP.NET menyediakan API yang kaya dan terperinci untuk menyimpan dan mengambil data pengguna, ini bisa menjadi alat produktivitas yang sangat baik.
Layanan profil harus diaktifkan di web.config; ini bukan secara default. Untuk melakukannya, pastikan bahwa profileService elemen anak telah diaktifkan= true yang ditentukan dalam web.config, dan Anda telah menentukan properti mana yang dapat dibaca atau ditulis sebagai berikut:
<system.web.extensions>
<scripting>
<webServices>
<profileService enabled="true"
readAccessProperties= Name,Address,BackgroundColor
writeAccessProperties= BackgroundColor />
</webServices>
</scripting>
</system.web.extensions>
Layanan profil juga harus dikonfigurasi. Meskipun konfigurasi layanan pembuatan profil berada di luar cakupan laporan resmi ini, ada baiknya untuk dicatat bahwa grup seperti yang didefinisikan dalam pengaturan konfigurasi profil akan dapat diakses sebagai sub-properti nama grup. Misalnya, dengan bagian profil berikut ditentukan:
<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>
Skrip klien akan dapat mengakses Nama, Alamat.Line1, Address.Line2, Address.City, Address.State, Address.Zip, dan BackgroundColor sebagai properti bidang properti kelas ProfileService.
Setelah Layanan Pembuatan Profil AJAX dikonfigurasi, layanan tersebut akan segera tersedia di halaman; namun, itu harus dimuat sekali sebelum digunakan.
Anggota Sys.Services.ProfileService
bidang properti:
Bidang properti mengekspos semua data profil yang dikonfigurasi sebagai properti anak yang dapat dirujuk oleh konvensi dot-operator-name. Properti yang merupakan turunan dari grup properti disebut sebagai GroupName.PropertyName. Dalam contoh konfigurasi profil yang disajikan di atas, untuk mendapatkan status pengguna, Anda dapat menggunakan pengidentifikasi berikut:
Sys.Services.ProfileService.properties.Address.State
metode pemuatan:
Memuat daftar terpilih atau semua properti dari server.
Parameter:
| Nama Parameter | Makna |
|---|---|
| propertyNames | Opsional (default ke null). Properti yang akan dimuat dari server. |
| loadCompletedCallback | Opsional (default ke null). Fungsi yang akan dipanggil saat pemuatan telah selesai. |
| failedCallback | Opsional (default ke null). Fungsi untuk memanggil jika terjadi kesalahan. |
| userContext | Opsional (default ke null). Informasi konteks yang akan diteruskan ke fungsi panggilan balik. |
Fungsi beban tidak memiliki nilai yang dikembalikan. Jika panggilan berhasil diselesaikan, panggilan akan memanggil loadCompletedCallback parameter atau defaultLoadCompletedCallback properti . Jika panggilan gagal, atau waktu habis kedaluwarsa, failedCallback parameter atau defaultFailedCallback properti akan dipanggil.
propertyNames Jika parameter tidak disediakan, semua properti yang dikonfigurasi baca diambil dari server.
metode simpan:
Metode save() menyimpan daftar properti yang ditentukan (atau semua properti) ke profil ASP.NET pengguna.
Parameter:
| Nama Parameter | Makna |
|---|---|
| propertyNames | Opsional (default ke null). Properti yang akan disimpan ke server. |
| saveCompletedCallback | Opsional (default ke null). Fungsi yang akan dipanggil saat penyimpanan telah selesai. |
| failedCallback | Opsional (default ke null). Fungsi yang akan dipanggil jika terjadi kesalahan. |
| userContext | Opsional (default ke null). Informasi konteks yang akan diteruskan ke fungsi panggilan balik. |
Fungsi simpan tidak memiliki nilai yang dikembalikan. Jika panggilan berhasil diselesaikan, panggilan akan memanggil saveCompletedCallback parameter atau defaultSaveCompletedCallback properti . Jika panggilan gagal, atau batas waktu berakhir, properti failedCallback atau defaultFailedCallback akan dipanggil.
propertyNames Jika parameter null, semua properti profil akan dikirim ke server, dan server akan memutuskan properti mana yang dapat disimpan dan mana yang tidak dapat.
properti defaultFailedCallback (dapatkan, atur):
Properti ini menentukan fungsi yang harus dipanggil jika terjadi kegagalan untuk berkomunikasi dengan layanan web. Ini harus menerima delegasi (atau referensi fungsi).
Referensi fungsi yang ditentukan oleh properti ini harus memiliki tanda tangan berikut:
function AuthenticationFailureCallback(error, userContext, methodName);
Parameter:
| Nama Parameter | Makna |
|---|---|
| Kesalahan | Menentukan informasi kesalahan. |
| userContext | Menentukan informasi konteks pengguna yang disediakan saat fungsi pemuatan atau penyimpanan dipanggil. |
| methodName | Nama metode panggilan. |
properti defaultSaveCompleted (dapatkan, atur):
Properti ini menentukan fungsi yang harus dipanggil setelah penyelesaian penyimpanan data profil pengguna. Ini harus menerima delegasi (atau referensi fungsi).
Referensi fungsi yang ditentukan oleh properti ini harus memiliki tanda tangan berikut:
function ProfileSaveComplete(numPropsSaved, userContext, methodName);
Parameter:
| Nama Parameter | Makna |
|---|---|
| numPropsSaved | Menentukan jumlah properti yang disimpan. |
| userContext | Menentukan informasi konteks pengguna yang disediakan saat fungsi pemuatan atau penyimpanan dipanggil. |
| methodName | Nama metode panggilan. |
properti defaultLoadCompleted (dapatkan, atur):
Properti ini menentukan fungsi yang harus dipanggil setelah penyelesaian pemuatan data profil pengguna. Ini harus menerima delegasi (atau referensi fungsi).
Referensi fungsi yang ditentukan oleh properti ini harus memiliki tanda tangan berikut:
function ProfileLoadComplete(numPropsLoaded, userContext, methodName);
Parameter:
| Nama Parameter | Makna |
|---|---|
| numPropsLoaded | Menentukan jumlah properti yang dimuat. |
| userContext | Menentukan informasi konteks pengguna yang disediakan saat fungsi pemuatan atau penyimpanan dipanggil. |
| methodName | Nama metode panggilan. |
properti jalur (dapatkan, atur):
Properti ini secara terprogram menentukan lokasi layanan web profil. Ini dapat digunakan untuk mengambil alih penyedia layanan profil default, serta satu set secara deklaratif di properti Jalur dari node anak ProfileService kontrol ScriptManager.
Perhatikan bahwa lokasi layanan profil default tidak berubah. Namun, ASP.NET AJAX memungkinkan Anda menentukan lokasi layanan web yang menyediakan antarmuka kelas yang sama dengan proksi layanan autentikasi AJAX ASP.NET.
Perhatikan juga bahwa properti ini tidak boleh diatur ke nilai yang mengarahkan permintaan skrip dari situs saat ini. Teknologi yang mendasar AJAX tidak boleh memposting permintaan lintas situs, dan dapat menghasilkan pengecualian keamanan di browser klien.
Properti ini adalah objek yang String mewakili jalur ke layanan web profil.
properti waktu habis (dapatkan, atur):
Properti ini menentukan lamanya waktu untuk menunggu layanan profil sebelum mengasumsikan permintaan pemuatan atau penyimpanan gagal. Jika batas waktu berakhir saat menunggu panggilan selesai, panggilan balik yang gagal permintaan akan dipanggil, dan panggilan tidak akan selesai.
Properti ini adalah objek yang Number menunjukkan jumlah milidetik untuk menunggu hasil dari layanan profil.
Sampel kode: Memuat data profil pada pemuatan halaman
Kode berikut akan memeriksa untuk melihat apakah pengguna diautentikasi, dan jika demikian, akan memuat warna latar belakang pilihan pengguna sebagai halaman.
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;
}
Menggunakan Penyedia Layanan Autentikasi Kustom
Ekstensi AJAX ASP.NET memungkinkan Anda membuat penyedia layanan autentikasi skrip kustom dengan mengekspos fungsionalitas Anda melalui layanan web kustom. Agar dapat digunakan, layanan web Anda harus mengekspos dua metode, Login dan Logout; dan metode ini harus ditentukan dengan tanda tangan metode yang sama dengan ASP.NET default layanan web AJAX Authentication.
Setelah Anda membuat layanan web kustom, Anda harus menentukan jalurnya, baik secara deklaratif di halaman Anda, secara terprogram dalam kode, atau melalui skrip klien.
Untuk mengatur jalur secara deklaratif:
Untuk mengatur jalur secara deklaratif, sertakan anak AuthenticationService dari objek ScriptManager di halaman ASP.NET Anda:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<AuthenticationService Path="~/AuthService.asmx" />
</asp:ScriptManager>
Untuk mengatur jalur dalam kode:
Untuk mengatur jalur secara terprogram, tentukan jalur melalui instans manajer skrip Anda:
protected void Page_Load(object sender, EventArgs e)
{
this.ScriptManager1.AuthenticationService.Path = "~/AuthService.asmx";
}
Untuk mengatur jalur dalam skrip:
Untuk mengatur jalur secara terprogram dalam skrip, gunakan path properti kelas 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");
}
Contoh Layanan Web untuk Autentikasi Kustom
<%@ 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();
}
}
Ringkasan
ASP.NET layanan - khususnya pembuatan profil, keanggotaan, dan layanan autentikasi - mudah diekspos ke JavaScript di browser klien. Ini memungkinkan pengembang untuk mengintegrasikan kode sisi klien mereka dengan mekanisme autentikasi dengan mulus, tanpa bergantung pada kontrol seperti UpdatePanels untuk melakukan pengangkatan berat. Data profil juga dapat dilindungi dari klien, dengan menggunakan pengaturan konfigurasi web; tidak ada data yang tersedia secara default, dan pengembang harus ikut serta dalam properti profil.
Selain itu, dengan membuat implementasi layanan web yang disederhanakan dengan tanda tangan metode yang setara, pengembang dapat membuat penyedia skrip kustom untuk layanan ASP.NET intrinsik ini. Dukungan untuk teknik ini menyederhanakan pengembangan aplikasi klien yang kaya, sekaligus memberi pengembang berbagai fleksibilitas untuk memenuhi kebutuhan tertentu.
Bio
Scott Cate telah bekerja dengan teknologi Microsoft Web sejak 1997 dan merupakan Presiden myKB.com (www.myKB.com) di mana ia mengkhususkan diri dalam menulis aplikasi berbasis ASP.NET yang berfokus pada solusi Perangkat Lunak Pangkalan Pengetahuan. Scott dapat dihubungi melalui email di scott.cate@myKB.com atau blognya di ScottCate.com