Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
tarafından Scott Cate
Kimlik doğrulama hizmeti, kullanıcıların kimlik doğrulama tanımlama bilgisi almak için kimlik bilgilerini sağlamasına olanak tanır ve ASP.NET tarafından sağlanan özel kullanıcı profillerine izin veren ağ geçidi hizmetidir. ASP.NET AJAX kimlik doğrulama hizmetinin kullanımı standart ASP.NET Forms kimlik doğrulamasıyla uyumludur, bu nedenle şu anda Forms kimlik doğrulaması kullanan uygulamalar (oturum açma denetimi gibi) AJAX kimlik doğrulama hizmetine yükseltilerek bozulmaz.
Giriş
.NET Framework 3.5'in bir parçası olarak Microsoft, hem yeni bir geliştirme ortamı hem de yeni Language-Integrated Query (LINQ) özellikleri ve diğer dil geliştirmeleri yakında kullanıma sunulacak olan boyutlandırılabilir bir ortam yükseltmesi sunuyor. Buna ek olarak, diğer araç kümelerinin bazı tanıdık özellikleri, özellikle de ASP.NET AJAX Uzantıları, .NET Framework Temel Sınıf Kitaplığı'nın birinci sınıf üyeleri olarak dahil edilir. Bu uzantılar, sayfaların tam sayfa yenileme gerektirmeden kısmi olarak işlenmesi, istemci betiği (ASP.NET profil oluşturma API'si dahil) aracılığıyla Web Hizmetlerine erişme olanağı ve ASP.NET sunucu tarafı denetim kümesinde görülen denetim şemalarının çoğunu yansıtmak için tasarlanmış kapsamlı bir istemci tarafı API'si gibi birçok yeni zengin istemci özelliğini etkinleştirir.
Bu teknik incelemede, ASP.NET Profil Oluşturma ve Forms Kimlik Doğrulama hizmetlerinin Microsoft ASP.NET AJAX Uzantıları Tarafından kullanıma sunulduğu şekilde uygulanması ve kullanımına bakılır. AJAX Uzantıları, Forms kimlik doğrulamasını desteklemeyi inanılmaz kolay hale getirir, çünkü (Profil Oluşturma Hizmeti'nin yanı sıra Profil Oluşturma Hizmeti de) bir Web Hizmeti proxy betiği aracılığıyla kullanıma sunulur. AJAX Uzantıları, AuthenticationServiceManager sınıfı aracılığıyla özel kimlik doğrulamasını da destekler.
Bu teknik inceleme, Visual Studio 2008'in Beta 2 sürümünü ve .NET Framework 3.5'i temel alır. Bu teknik inceleme ayrıca Visual Web Developer Express ile değil Visual Studio 2008 Beta 2 ile çalışacağınızı ve Visual Studio'nun kullanıcı arabirimine göre izlenecek yollar sağlayacağınızı varsayar. Bazı kod örnekleri Visual Web Developer Express'te kullanılamayan proje şablonlarını kullanabilir.
Profiller ve Kimlik Doğrulaması
Microsoft ASP.NET Profilleri ve Kimlik Doğrulama hizmetleri ASP.NET Forms Kimlik Doğrulama sistemi tarafından sağlanır ve ASP.NET standart bileşenleridir. ASP.NET AJAX Uzantıları, istemci AJAX kitaplığının Sys.Services ad alanı altında oldukça basit bir model aracılığıyla betik proxy'leri aracılığıyla bu hizmetlere betik erişimi sağlar.
Kimlik doğrulama hizmeti, kullanıcıların kimlik doğrulama tanımlama bilgisi almak için kimlik bilgilerini sağlamasına olanak tanır ve ASP.NET tarafından sağlanan özel kullanıcı profillerine izin veren ağ geçidi hizmetidir. ASP.NET AJAX kimlik doğrulama hizmetinin kullanımı standart ASP.NET Forms kimlik doğrulamasıyla uyumludur, bu nedenle şu anda Forms kimlik doğrulaması kullanan uygulamalar (oturum açma denetimi gibi) AJAX kimlik doğrulama hizmetine yükseltilerek bozulmaz.
Profil hizmeti, Kimlik Doğrulama hizmeti tarafından sağlanan üyelik temelinde kullanıcı verilerinin otomatik olarak tümleştirilmesine ve depolanmasına olanak tanır. Depolanan veriler web.config dosyası tarafından belirtilir ve çeşitli profil oluşturma hizmet sağlayıcıları veri yönetimini işler. Kimlik Doğrulama hizmetinde olduğu gibi, AJAX Profil hizmeti standart ASP.NET profil hizmetiyle uyumludur, böylece şu anda ASP.NET Profil hizmetinin özelliklerini içeren sayfalar AJAX desteği dahil edilerek bozulmamalıdır.
ASP.NET Kimlik Doğrulaması ve Profil Oluşturma hizmetlerinin bir uygulamaya dahil olması bu teknik incelemenin kapsamı dışındadır. Konu hakkında daha fazla bilgi için adresinden Kullanıcıları Üyelik Kullanarak Yönetme MSDN Kitaplığı başvuru makalesine bakın https://msdn.microsoft.com/library/tw292whz.aspx. ASP.NET, ASP.NET Üyeliği için varsayılan kimlik doğrulama hizmeti sağlayıcısı olan SQL Server ile Üyeliği otomatik olarak ayarlamaya yönelik bir yardımcı program da içerir. Daha fazla bilgi için adresinde kayıt aracı (Aspnet_regsql.exe) ASP.NET SQL Server makalesine https://msdn.microsoft.com/library/ms229862(vs.80).aspxbakın.
ASP.NET AJAX Kimlik Doğrulama Hizmetini Kullanma
ASP.NET AJAX Kimlik Doğrulama hizmeti web.config dosyasında etkinleştirilmelidir:
<system.web.extensions>
<scripting>
<webServices>
<authenticationService enabled="true" />
</webServices>
</scripting>
</system.web.extensions>
Kimlik Doğrulama hizmeti, ASP.NET Forms kimlik doğrulamasının etkinleştirilmesini ve istemci tarayıcıda tanımlama bilgilerinin etkinleştirilmesini gerektirir (tanımlama bilgisi olmayan oturumlar URL parametreleri gerektirdiğinden betik tanımlama bilgisi olmayan oturumu etkinleştiremez).
AJAX kimlik doğrulama hizmeti etkinleştirilip yapılandırıldıktan sonra istemci betiği Sys.Services.AuthenticationService nesnesinden hemen yararlanabilir. Öncelikle, istemci betiği yöntem ve isLoggedIn özelliğinden login yararlanmak isteyecektir. Oturum açma yöntemi için çok sayıda parametre kabul edebilen varsayılanlar sağlamak için çeşitli özellikler vardır.
Sys.Services.AuthenticationService üyeleri
oturum açma yöntemi:
login() yöntemi, kullanıcının kimlik bilgilerini doğrulamak için bir istek başlatır. Bu yöntem zaman uyumsuzdur ve yürütmeyi engellemez.
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| userName | Gereklidir. Kimlik doğrulaması için kullanıcı adı. |
| password | İsteğe bağlı (varsayılan olarak null). Kullanıcının parolası. |
| isPersistent | İsteğe bağlı (varsayılan değer false'tur). Kullanıcının kimlik doğrulama tanımlama bilgisinin oturumlar arasında kalıcı olup olmaması. False ise, tarayıcı kapatıldığında veya oturumun süresi dolduğunda kullanıcı oturumu kapatır. |
| redirectUrl | İsteğe bağlı (varsayılan olarak null). Başarılı bir kimlik doğrulamasından sonra tarayıcıyı yönlendirme URL'si. Bu parametre null veya boş bir dizeyse, yeniden yönlendirme gerçekleşmez. |
| customInfo | İsteğe bağlı (varsayılan olarak null). Bu parametre şu anda kullanılmamış ve gelecekte kullanılmak üzere ayrılmıştır. |
| loginCompletedCallback | İsteğe bağlı (varsayılan olarak null). Oturum açma işlemi başarıyla tamamlandığında çağrılacak işlev. Belirtilirse, bu parametre defaultLoginCompleted özelliğini geçersiz kılar. |
| failedCallback | İsteğe bağlı (varsayılan olarak null). Oturum açma başarısız olduğunda çağrılacak işlev. Belirtilirse, bu parametre defaultFailedCallback özelliğini geçersiz kılar. |
| Usercontext | İsteğe bağlı (varsayılan olarak null). Geri çağırma işlevlerine geçirilmesi gereken özel kullanıcı bağlamı verileri. |
Dönüş Değeri:
Bu işlev bir dönüş değeri içermez. Ancak, bu işleve yönelik bir çağrı tamamlandıktan sonra bir dizi davranış eklenir:
- Parametre null veya boş bir dize değilse
redirectUrlgeçerli sayfa yenilenir veya değiştirilir. - Ancak, parametre null veya boş bir dizeyse parametre
loginCompletedCallbackveyadefaultLoginCompletedCallbacközellik çağrılır. - Web hizmetine yapılan çağrı başarısız olursa, özelliğinin
failedCallbackdefaultFailedCallbackparametresi çağrılır.
logout yöntemi:
logout() yöntemi kimlik bilgileri tanımlama bilgisini kaldırır ve geçerli kullanıcıyı web uygulamasından günlüğe kaydeder.
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| redirectUrl | İsteğe bağlı (varsayılan olarak null). Başarılı bir kimlik doğrulamasından sonra tarayıcıyı yönlendirme URL'si. Bu parametre null veya boş bir dizeyse, yeniden yönlendirme gerçekleşmez. |
| logoutCompletedCallback | İsteğe bağlı (varsayılan olarak null). Oturumu kapatma işlemi başarıyla tamamlandığında çağrılacak işlev. Belirtilirse, bu parametre defaultLogoutCompleted özelliğini geçersiz kılar. |
| failedCallback | İsteğe bağlı (varsayılan olarak null). Oturum açma başarısız olduğunda çağrılacak işlev. Belirtilirse, bu parametre defaultFailedCallback özelliğini geçersiz kılar. |
| Usercontext | İsteğe bağlı (varsayılan olarak null). Geri çağırma işlevlerine geçirilmesi gereken özel kullanıcı bağlamı verileri. |
Dönüş Değeri:
Bu işlev bir dönüş değeri içermez. Ancak, bu işleve yönelik bir çağrı tamamlandıktan sonra bir dizi davranış eklenir:
- Parametre null veya boş bir dize değilse
redirectUrlgeçerli sayfa yenilenir veya değiştirilir. - Ancak, parametre null veya boş bir dizeyse parametre
logoutCompletedCallbackveyadefaultLogoutCompletedCallbacközellik çağrılır. - Web hizmetine yapılan çağrı başarısız olursa, özelliğinin
failedCallbackdefaultFailedCallbackparametresi çağrılır.
defaultFailedCallback özelliği (get, set):
Bu özellik, web hizmetiyle iletişim kurma hatası oluşursa çağrılması gereken bir işlev belirtir. Bir temsilci (veya işlev başvurusu) almalıdır.
Bu özellik tarafından belirtilen işlev başvurusu aşağıdaki imzaya sahip olmalıdır:
function AuthenticationFailureCallback(error, userContext, methodName);
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| error | Hata bilgilerini belirtir. |
| Usercontext | Oturum açma veya oturumu kapatma işlevi çağrıldığında sağlanan kullanıcı bağlamı bilgilerini belirtir. |
| Methodname | Çağırma yönteminin adı. |
defaultLoginCompletedCallback özelliği (get, set):
Bu özellik, oturum açma web hizmeti çağrısı tamamlandığında çağrılması gereken bir işlev belirtir. Bir temsilci (veya işlev başvurusu) almalıdır.
Bu özellik tarafından belirtilen işlev başvurusu aşağıdaki imzaya sahip olmalıdır:
function AuthenticationLoginCompletedCallback(validCredentials, userContext, methodName);
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| validCredentials | Kullanıcının geçerli kimlik bilgileri sağlayıp sağlayamayacağını belirtir.
true kullanıcı başarıyla oturum açtıysa; aksi takdirde false. |
| Usercontext | Oturum açma işlevi çağrıldığında sağlanan kullanıcı bağlamı bilgilerini belirtir. |
| Methodname | Çağırma yönteminin adı. |
defaultLogoutCompletedCallback özelliği (get, set):
Bu özellik, oturumu kapatma web hizmeti çağrısı tamamlandığında çağrılması gereken bir işlev belirtir. Bir temsilci (veya işlev başvurusu) almalıdır.
Bu özellik tarafından belirtilen işlev başvurusu aşağıdaki imzaya sahip olmalıdır:
function AuthenticationLogoutCompletedCallback(result, userContext, methodName);
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| sonuç | Bu parametre her zaman olacaktır null; gelecekte kullanılmak üzere ayrılmıştır. |
| Usercontext | Oturum açma işlevi çağrıldığında sağlanan kullanıcı bağlamı bilgilerini belirtir. |
| Methodname | Çağırma yönteminin adı. |
isLoggedIn özelliği (get):
Bu özellik kullanıcının geçerli kimlik doğrulama durumunu alır; bir sayfa isteği sırasında ScriptManager nesnesi tarafından ayarlanır.
Bu özellik, kullanıcı şu anda oturum açmışsa döndürür true ; aksi takdirde döndürür false.
path özelliği (get, set):
Bu özellik, kimlik doğrulama web hizmetinin konumunu program aracılığıyla belirler. Varsayılan kimlik doğrulama sağlayıcısını geçersiz kılmak ve ScriptManager denetiminin AuthenticationService alt düğümünün Path özelliğinde bildirimli olarak bir kümeyi geçersiz kılmak için kullanılabilir (daha fazla bilgi için aşağıdaki Özel Kimlik Doğrulama Hizmeti Sağlayıcısı Kullanma konusuna bakın).
Varsayılan kimlik doğrulama hizmetinin konumunun değişmediğini unutmayın. Ancak ASP.NET AJAX, ASP.NET AJAX kimlik doğrulama hizmeti proxy'si ile aynı sınıf arabirimini sağlayan bir web hizmetinin konumunu belirtmenize olanak tanır.
Ayrıca bu özelliğin betik isteğini geçerli sitenin dışına yönlendiren bir değere ayarlanmaması gerektiğini unutmayın. Geçerli uygulama kimlik doğrulama kimlik bilgilerini alamayacağından işe yaramaz; ayrıca, temel alınan AJAX teknolojisi siteler arası istekleri göndermemelidir ve istemci tarayıcısında bir güvenlik özel durumu oluşturabilir.
Bu özellik, kimlik doğrulama web hizmetinin yolunu temsil eden bir String nesnedir.
timeout özelliği (get, set):
Bu özellik, oturum açma isteğinin başarısız olduğunu varsaymadan önce kimlik doğrulama hizmetini bekleme süresini belirler. Bir çağrının tamamlanmasını beklerken zaman aşımı süresi dolarsa, istek başarısız olan geri arama çağrılır ve çağrı tamamlanmaz.
Bu özellik, kimlik doğrulama hizmetinden sonuçların beklenmesi için milisaniye sayısını temsil eden bir Number nesnedir.
Kod Örneği: Kimlik Doğrulama Hizmetinde Oturum Açma
Aşağıdaki işaretleme, AuthenticationService sınıfının oturum açma ve oturum kapatma yöntemlerine basit bir betik çağrısı içeren örnek bir ASP.NET sayfasıdır.
<%@ 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>
AJAX aracılığıyla ASP.NET Profil Oluşturma Verilerine Erişme
ASP.NET profil oluşturma hizmeti de ASP.NET AJAX Uzantıları aracılığıyla kullanıma sunulur. ASP.NET profil oluşturma hizmeti, kullanıcı verilerini depolamak ve almak için zengin, ayrıntılı bir API sağladığından, bu mükemmel bir üretkenlik aracı olabilir.
Profil hizmeti web.config etkinleştirilmelidir; varsayılan olarak değildir. Bunu yapmak için alt öğenin web.config içinde enabled= true değerinin belirtildiğinden ve hangi özelliklerin aşağıdaki gibi okunabileceği veya yazılabilir olduğunu belirttiğinizden emin olun profileService :
<system.web.extensions>
<scripting>
<webServices>
<profileService enabled="true"
readAccessProperties= Name,Address,BackgroundColor
writeAccessProperties= BackgroundColor />
</webServices>
</scripting>
</system.web.extensions>
Profil hizmeti de yapılandırılmalıdır. Profil oluşturma hizmetinin yapılandırması bu teknik incelemenin kapsamı dışında olsa da, profil yapılandırma ayarlarında tanımlanan grupların grup adının alt özellikleri olarak erişilebilir olacağını unutmayın. Örneğin, aşağıdaki profil bölümü belirtilmiş şekilde:
<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>
İstemci betiği, ProfileService sınıfının özellikler alanının özellikleri olarak Name, Address.Line1, Address.Line2, Address.City, Address.State, Address.Zip ve BackgroundColor'a erişebilir.
AJAX Profil Oluşturma Hizmeti yapılandırıldıktan sonra sayfalarda hemen kullanılabilir; ancak, kullanmadan önce bir kez yüklenmesi gerekir.
Sys.Services.ProfileService üyeleri
properties alanı:
Özellikler alanı, tüm yapılandırılmış profil verilerini dot-operator-name kuralı tarafından başvurulabilecek alt özellikler olarak kullanıma sunar. Özellik gruplarının alt öğeleri olan özellikler GroupName.PropertyName olarak adlandırılır. Yukarıda sunulan örnek profil yapılandırmasında, kullanıcının durumunu almak için aşağıdaki tanımlayıcıyı kullanabilirsiniz:
Sys.Services.ProfileService.properties.Address.State
load yöntemi:
Seçili listeyi veya sunucudan tüm özellikleri yükler.
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| propertyNames | İsteğe bağlı (varsayılan olarak null). Sunucudan yüklenecek özellikler. |
| loadCompletedCallback | İsteğe bağlı (varsayılan olarak null). Yükleme tamamlandığında çağrılacak işlev. |
| failedCallback | İsteğe bağlı (varsayılan olarak null). Hata oluşursa çağrılacak işlev. |
| Usercontext | İsteğe bağlı (varsayılan olarak null). Geri çağırma işlevine geçirilecek bağlam bilgileri. |
Load işlevinin dönüş değeri yok. Çağrı başarıyla tamamlanırsa parametresini loadCompletedCallback veya defaultLoadCompletedCallback özelliğini çağırır. Çağrı başarısız olursa veya zaman aşımı süresi dolduysa, failedCallback parametre veya defaultFailedCallback özellik çağrılır.
Parametre sağlanmazsa propertyNames , tüm okumayla yapılandırılmış özellikler sunucudan alınır.
save yöntemi:
save() yöntemi, belirtilen özellik listesini (veya tüm özellikleri) kullanıcının ASP.NET profiline kaydeder.
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| propertyNames | İsteğe bağlı (varsayılan olarak null). Sunucuya kaydedilecek özellikler. |
| saveCompletedCallback | İsteğe bağlı (varsayılan olarak null). Kaydetme işlemi tamamlandığında çağrılacak işlev. |
| failedCallback | İsteğe bağlı (varsayılan değer null'tır). Hata oluşursa çağrılacak işlev. |
| Usercontext | İsteğe bağlı (varsayılan değer null'tır). Geri çağırma işlevine geçirilecek bağlam bilgileri. |
Save işlevinin dönüş değeri yok. Çağrı başarıyla tamamlanırsa parametresini saveCompletedCallback veya defaultSaveCompletedCallback özelliğini çağırır. Çağrı başarısız olursa veya zaman aşımı süresi dolduysa veya failedCallbackdefaultFailedCallback özelliği çağrılır.
propertyNames Parametre null ise, tüm profil özellikleri sunucuya gönderilir ve hangi özelliklerin kaydedilebileceğine ve hangilerinin kaydedilemeyeceğine sunucu karar verir.
defaultFailedCallback özelliği (get, set):
Bu özellik, web hizmetiyle iletişim kurma hatası oluşursa çağrılması gereken bir işlevi belirtir. Bir temsilci (veya işlev başvurusu) almalıdır.
Bu özellik tarafından belirtilen işlev başvurusu aşağıdaki imzaya sahip olmalıdır:
function AuthenticationFailureCallback(error, userContext, methodName);
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| Hata | Hata bilgilerini belirtir. |
| Usercontext | Yükleme veya kaydetme işlevi çağrıldığında sağlanan kullanıcı bağlamı bilgilerini belirtir. |
| Methodname | Çağıran yöntemin adı. |
defaultSaveCompleted özelliği (get, set):
Bu özellik, kullanıcının profil verilerinin kaydedilmesi tamamlandıktan sonra çağrılması gereken bir işlev belirtir. Bir temsilci (veya işlev başvurusu) almalıdır.
Bu özellik tarafından belirtilen işlev başvurusu aşağıdaki imzaya sahip olmalıdır:
function ProfileSaveComplete(numPropsSaved, userContext, methodName);
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| numPropsSaved | Kaydedilen özelliklerin sayısını belirtir. |
| Usercontext | Yükleme veya kaydetme işlevi çağrıldığında sağlanan kullanıcı bağlamı bilgilerini belirtir. |
| Methodname | Çağıran yöntemin adı. |
defaultLoadCompleted özelliği (get, set):
Bu özellik, kullanıcının profil verilerinin yüklenmesi tamamlandıktan sonra çağrılması gereken bir işlev belirtir. Bir temsilci (veya işlev başvurusu) almalıdır.
Bu özellik tarafından belirtilen işlev başvurusu aşağıdaki imzaya sahip olmalıdır:
function ProfileLoadComplete(numPropsLoaded, userContext, methodName);
Parametre:
| Parametre Adı | Anlamı |
|---|---|
| numPropsLoaded | Yüklenen özelliklerin sayısını belirtir. |
| Usercontext | Yükleme veya kaydetme işlevi çağrıldığında sağlanan kullanıcı bağlamı bilgilerini belirtir. |
| Methodname | Çağıran yöntemin adı. |
path özelliği (get, set):
Bu özellik, profil web hizmetinin konumunu program aracılığıyla belirler. Varsayılan profil hizmeti sağlayıcısını geçersiz kılmak ve ScriptManager denetiminin ProfileService alt düğümünün Path özelliğinde bildirimli olarak bir kümeyi geçersiz kılmak için kullanılabilir.
Varsayılan profil hizmetinin konumunun değişmediğini unutmayın. Ancak ASP.NET AJAX, ASP.NET AJAX kimlik doğrulama hizmeti proxy'si ile aynı sınıf arabirimini sağlayan bir web hizmetinin konumunu belirtmenize olanak tanır.
Ayrıca, bu özelliğin betik isteğini geçerli siteden yönlendiren bir değere ayarlanmaması gerektiğini unutmayın. Temel alınan AJAX teknolojisi siteler arası istek göndermemelidir ve istemci tarayıcısında bir güvenlik özel durumu oluşturabilir.
Bu özellik, profil web hizmetinin yolunu temsil eden bir String nesnedir.
timeout özelliği (get, set):
Bu özellik, yükleme veya kaydetme isteğinin başarısız olduğunu varsaymadan önce profil hizmetinin beklenip beklenmediğini belirler. Bir çağrının tamamlanmasını beklerken zaman aşımı süresi dolarsa, istek başarısız geri çağırma çağrılır ve çağrı tamamlanmaz.
Bu özellik, profil hizmetinden sonuçların beklenmesi için milisaniye sayısını temsil eden bir Number nesnedir.
Kod örneği: Sayfa yükleme sırasında profil verilerini yükleme
Aşağıdaki kod, bir kullanıcının kimliğinin doğrulanıp doğrulanmamış olduğunu denetler ve doğruysa sayfanın tercih edilen arka plan rengini yükler.
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;
}
Özel Kimlik Doğrulama Hizmeti Sağlayıcısı Kullanma
ASP.NET AJAX Uzantıları, işlevselliğinizi özel bir web hizmeti aracılığıyla kullanıma sunarak özel bir betik kimlik doğrulama hizmeti sağlayıcısı oluşturmanıza olanak sağlar. Web hizmetinizin kullanılabilmesi için iki yöntemi kullanıma Logoutsunması Login ve bu yöntemlerin varsayılan ASP.NET AJAX Authentication web hizmetiyle aynı yöntem imzalarıyla belirtilmesi gerekir.
Özel web hizmetini oluşturduktan sonra, sayfanızda bildirimli olarak, kodda program aracılığıyla veya istemci betiği aracılığıyla yolunu belirtmeniz gerekir.
Yolu bildirimli olarak ayarlamak için:
Yolu bildirimli olarak ayarlamak için, ASP.NET sayfanıza ScriptManager nesnesinin AuthenticationService alt öğesini ekleyin:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<AuthenticationService Path="~/AuthService.asmx" />
</asp:ScriptManager>
Kodda yolu ayarlamak için:
Yolu program aracılığıyla ayarlamak için, betik yöneticinizin örneği aracılığıyla yolu belirtin:
protected void Page_Load(object sender, EventArgs e)
{
this.ScriptManager1.AuthenticationService.Path = "~/AuthService.asmx";
}
Betikte yolu ayarlamak için:
Yolu betikte program aracılığıyla ayarlamak için AuthenticationService sınıfının özelliğini kullanın path :
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");
}
Özel Kimlik Doğrulaması için Örnek Web Hizmeti
<%@ 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();
}
}
Özet
özellikle profil oluşturma, üyelik ve kimlik doğrulama hizmetleri olmak üzere ASP.NET hizmetleri, istemci tarayıcıda Kolayca JavaScript'e sunulur. Bu, geliştiricilerin ağır işi yapmak için UpdatePanels gibi denetimlere bağlı kalmadan istemci tarafı kodlarını kimlik doğrulama mekanizmasıyla sorunsuz bir şekilde tümleştirmesine olanak tanır. Profil verileri, web yapılandırma ayarları kullanılarak istemciden de korunabilir; varsayılan olarak kullanılabilir veri yoktur ve geliştiricilerin profil özelliklerini kabul etmesi gerekir.
Ayrıca, geliştiriciler eşdeğer yöntem imzalarıyla basitleştirilmiş web hizmeti uygulamaları oluşturarak bu iç ASP.NET hizmetleri için özel betik sağlayıcıları oluşturabilir. Bu tekniklere yönelik destek, zengin istemci uygulamalarının geliştirilmesini kolaylaştırırken geliştiricilere belirli gereksinimleri karşılamak için çok çeşitli esneklikler sağlar.
Biyografi
Scott Cate, 1997'den beri Microsoft Web teknolojileriyle çalışmaktadır ve Bilgi Bankası Yazılımı çözümlerine odaklanan ASP.NET tabanlı uygulamalar yazma konusunda uzmanlaştığı myKB.com (www.myKB.com) Başkanıdır. Scott'a ScottCate.com adresinden scott.cate@myKB.com veya blogundan e-posta yoluyla ulaşabilirsiniz .