Windows Kimlik Doğrulaması ile Kullanıcıların Kimliğini Doğrulama (VB)Authenticating Users with Windows Authentication (VB)

Microsoft tarafındanby Microsoft

Bir MVC uygulaması bağlamında Windows kimlik doğrulamasını nasıl kullanacağınızı öğrenin.Learn how to use Windows authentication in the context of an MVC application. Uygulamanızın web yapılandırma dosyasında Windows kimlik doğrulamasını nasıl etkinleştirdiğinizi ve Kimlik doğrulamayı IIS ile nasıl yapılandırabileceğinizi öğrenirsiniz.You learn how to enable Windows authentication within your application's web configuration file and how to configure authentication with IIS. Son olarak, denetleyici eylemlerine erişimi belirli Windows kullanıcıları veya gruplarıyla sınırlamak için [Yetkilendirme] özniteliğini nasıl kullanacağınızı öğrenirsiniz.Finally, you learn how to use the [Authorize] attribute to restrict access to controller actions to particular Windows users or groups.

Bu öğreticinin amacı, MVC uygulamalarınızdaki görünümleri parolayla korumak için Internet Bilgi Hizmetleri'nde yerleşik güvenlik özelliklerinden nasıl yararlanabileceğinizi açıklamaktır.The goal of this tutorial is to explain how you can take advantage of the security features built into Internet Information Services to password protect the views in your MVC applications. Denetleyici eylemlerinin yalnızca belirli Windows kullanıcıları veya belirli Windows gruplarının üyesi kullanıcılar tarafından çağrılmasını nasıl sağlayacağınızı öğrenirsiniz.You learn how to allow controller actions to be invoked only by particular Windows users or users who are members of particular Windows groups.

Windows kimlik doğrulamasını kullanmak, bir şirket içi web sitesi (intranet sitesi) oluşturuyorsanız ve kullanıcılarınızın web sitesine erişirken standart Windows kullanıcı adlarını ve parolalarını kullanabilmesini istediğinizde anlamlıdır.Using Windows authentication makes sense when you are building an internal company website (an intranet site) and you want your users to be able to use their standard Windows user names and passwords when accessing the website. Dışa dönük bir web sitesi (Bir Internet web sitesi) oluşturuyorsanız, bunun yerine Formkimlik doğrulaması kullanmayı düşünün.If you are building an outwards facing website (an Internet website) consider using Forms authentication instead.

Windows Kimlik Doğrulamasını EtkinleştirmeEnabling Windows Authentication

Yeni bir ASP.NET MVC uygulaması oluşturduğunuzda, Windows kimlik doğrulaması varsayılan olarak etkinleştirilir.When you create a new ASP.NET MVC application, Windows authentication is not enabled by default. Form kimlik doğrulaması, MVC uygulamaları için etkinleştirilmiş varsayılan kimlik doğrulama türüdür.Forms authentication is the default authentication type enabled for MVC applications. MVC uygulamanızın web yapılandırmasını (web.config) dosyasını değiştirerek Windows kimlik doğrulamasını etkinleştirmelisiniz.You must enable Windows authentication by modifying your MVC application's web configuration (web.config) file. <Kimlik doğrulama> bölümünü bulun ve Formlar kimlik doğrulaması yerine Windows'u kullanacak şekilde değiştirin:Find the <authentication> section and modify it to use Windows instead of Forms authentication like this:

<authentication mode="Windows">

</authentication>

Windows kimlik doğrulamasını etkinleştirdiğinizde, web sunucunuz kullanıcıların kimlik doğrulamasorumlusundan sorumlu olur.When you enable Windows authentication, your web server becomes responsible for authenticating users. Genellikle, bir ASP.NET mvc uygulaması oluştururken ve dağıtırken kullandığınız iki farklı web sunucusu türü vardır.Typically, there are two different types of web servers that you use when creating and deploying an ASP.NET MVC application.

İlk olarak, bir MVC uygulaması geliştirirken Visual Studio ile birlikte ASP.NET Geliştirme Web Sunucusu'nu kullanırsınız.First, while developing an MVC application, you use the ASP.NET Development Web Server included with Visual Studio. Varsayılan olarak, ASP.NET Geliştirme Web Sunucusu tüm sayfaları geçerli Windows hesabı bağlamında yürütür (Windows'da oturum açmak için kullandığınız hesap ne olursa olsun).By default, the ASP.NET Development Web Server executes all pages in the context of the current Windows account (whatever account you used to log into Windows).

ASP.NET Geliştirme Web Sunucusu da NTLM kimlik doğrulamasını destekler.The ASP.NET Development Web Server also supports NTLM authentication. Çözüm Gezgini penceresinde projenizin adını sağ tıklayarak ve Özellikler'i seçerek NTLM kimlik doğrulamasını etkinleştirebilirsiniz.You can enable NTLM authentication by right-clicking the name of your project in the Solution Explorer window and selecting Properties. Ardından, Web sekmesini seçin ve NTLM onay kutusunu işaretleyin (Bkz. Şekil 1).Next, select the Web tab and check the NTLM checkbox (see Figure 1).

Şekil 1 – ASP.NET Geliştirme Web Sunucusu için NTLM kimlik doğrulamasını etkinleştirmeFigure 1 – Enabling NTLM authentication for the ASP.NET Development Web Server

clip_image002

Bir üretim web uygulaması için, elde, web sunucusu olarak IIS kullanın.For a production web application, on the hand, you use IIS as your web server. IIS, çeşitli kimlik doğrulama türlerini destekler:IIS supports several types of authentication including:

  • Temel Kimlik Doğrulama – HTTP 1.0 protokolünün bir parçası olarak tanımlanır.Basic Authentication – Defined as part of the HTTP 1.0 protocol. Internet üzerinden açık metin (Base64 kodlanmış) kullanıcı adları ve parolalar gönderir.Sends user names and passwords in clear text (Base64 encoded) across the Internet. - Digest Authentication - Internet üzerinden şifre kendisi yerine, bir şifre karma gönderir.- Digest Authentication – Sends a hash of a password, instead of the password itself, across the internet. - Entegre Windows (NTLM) Kimlik Doğrulaması – Pencereleri kullanarak intranet ortamlarında kullanılacak en iyi kimlik doğrulama türüdür.- Integrated Windows (NTLM) Authentication – The best type of authentication to use in intranet environments using windows. - Sertifika Kimlik Doğrulaması – İstemci tarafı sertifikası kullanarak kimlik doğrulamasını sağlar.- Certificate Authentication – Enables authentication using a client-side certificate. Sertifika, bir Windows kullanıcı hesabına eşler.The certificate maps to a Windows user account.

Note

Bu farklı kimlik doğrulama türlerinin daha ayrıntılı https://msdn.microsoft.com/library/aa292114(VS.71).aspxbir özeti için bkz.For a more detailed overview of these different types of authentication, see https://msdn.microsoft.com/library/aa292114(VS.71).aspx.

Belirli bir kimlik doğrulama türünü etkinleştirmek için Internet Information Services Manager'ı kullanabilirsiniz.You can use Internet Information Services Manager to enable a particular type of authentication. Her işletim sisteminde her türlü kimlik doğrulamanın kullanılmadığını unutmayın.Be aware that all types of authentication are not available in the case of every operating system. Ayrıca, Windows Vista ile IIS 7.0 kullanıyorsanız, Internet Bilgi Hizmetleri Yöneticisi'nde görünmeden önce farklı Windows kimlik doğrulama türlerini etkinleştirmeniz gerekir.Furthermore, if you are using IIS 7.0 with Windows Vista, you will need to enable the different types of Windows authentication before they appear in the Internet Information Services Manager. Denetim Masası, Programlar, Programlar ve Özellikler açık, Windows özelliklerini açıp kapatınve Internet Bilgi Hizmetleri düğümünü genişletin (Bkz. Şekil 2).Open Control Panel, Programs, Programs and Features, Turn Windows features on or off, and expand the Internet Information Services node (see Figure 2).

Şekil 2 – Windows IIS özelliklerini etkinleştirmeFigure 2 – Enabling Windows IIS features

clip_image004

Internet Bilgi Hizmetleri'ni kullanarak farklı kimlik doğrulama türlerini etkinleştirebilir veya devre dışı kullanabilirsiniz.Using Internet Information Services, you can enable or disable different types of authentication. Örneğin, Şekil 3 anonim kimlik doğrulamasını devre dışı bırakmayı ve IIS 7.0 kullanırken Tümleşik Windows (NTLM) kimlik doğrulamasını etkinleştirmeyi göstermektedir.For example, Figure 3 illustrates disabling anonymous authentication and enabling Integrated Windows (NTLM) authentication when using IIS 7.0.

Şekil 3 – Tümleşik Windows Kimlik Doğrulamasını EtkinleştirmeFigure 3 – Enabling Integrated Windows Authentication

clip_image006

Windows Kullanıcılarını ve Gruplarını YetkilendirmeAuthorizing Windows Users and Groups

Windows kimlik doğrulamasını etkinleştirdikten sonra, denetleyicilere veya denetleyici eylemlerine erişimi denetlemek için <Yetkilendirme> özniteliğini kullanabilirsiniz.After you enable Windows authentication, you can use the <Authorize> attribute to control access to controllers or controller actions. Bu öznitelik, tüm MVC denetleyicisine veya belirli bir denetleyici eylemine uygulanabilir.This attribute can be applied to an entire MVC controller or a particular controller action.

Örneğin, Listeleme 1'deki Ev denetleyicisi Index(), CompanySecrets() ve StephenSecrets() adlı üç eylemi ortaya çıkarır.For example, the Home controller in Listing 1 exposes three actions named Index(), CompanySecrets(), and StephenSecrets(). Herkes Index() eylemini çağırabilir.Anyone can invoke the Index() action. Ancak, yalnızca Windows yerel Yöneticileri grubunun üyeleri CompanySecrets() eylemini çağırabilir.However, only members of the Windows local Managers group can invoke the CompanySecrets() action. Son olarak, yalnızca Stephen adlı Windows etki alanı kullanıcısı (Redmond etki alanında) StephenSecrets() eylemini başlatabilir.Finally, only the Windows domain user named Stephen (in the Redmond domain) can invoke the StephenSecrets() action.

Listeleme 1 – Denetleyiciler\HomeController.vbListing 1 – Controllers\HomeController.vb

<HandleError()> _
Public Class HomeController
    Inherits System.Web.Mvc.Controller

    Function Index()
        Return View()
    End Function

    <Authorize(Roles:="Managers")> _
    Function CompanySecrets()
        Return View()
    End Function


    <Authorize(Users:="redmond\swalther")> _
    Function StephenSecrets()
        Return View()
    End Function

End Class

Note

Windows Kullanıcı Hesabı Denetimi (UAC) nedeniyle, Windows Vista veya Windows Server 2008 ile çalışırken, yerel Yöneticiler grubu diğer gruplardan farklı davranacaktır.Because of Windows User Account Control (UAC), when working with Windows Vista or Windows Server 2008, the local Administrators group will behave differently than other groups. Bilgisayarınızın <> UAC ayarlarını değiştirmediğiniz sürece Yetkilendirme özniteliği yerel Yöneticiler grubunun bir üyesini doğru şekilde tanımaz.The <Authorize> attribute won't correctly recognize a member of the local Administrators group unless you modify your computer's UAC settings.

Doğru izinler olmadan bir denetleyici eylemi çağırmaya çalıştığınızda tam olarak ne olur, kimlik doğrulamanın etkinleştirilen türüne bağlıdır.Exactly what happens when you attempt to invoke a controller action without being the right permissions depends on the type of authentication enabled. Varsayılan olarak, ASP.NET Geliştirme Sunucusu'nu kullanırken boş bir sayfa elde edersiniz.By default, when using the ASP.NET Development Server, you simply get a blank page. Sayfa 401 Yetkili değil HTTP Yanıt Durumu ile servis edilir.The page is served with a 401 Not Authorized HTTP Response Status.

Diğer taraftan, Anonim kimlik doğrulama devre dışı bırakılmış ve Temel kimlik doğrulama etkini ile IIS kullanıyorsanız, korumalı sayfayı her istediğinizde bir giriş iletişim istemi almaya devam emzebilirsiniz (Bkz. Şekil 4).If, on the other hand, you are using IIS with Anonymous authentication disabled and Basic authentication enabled, then you keep getting a login dialog prompt each time you request the protected page (see Figure 4).

Şekil 4 – Temel kimlik doğrulama giriş iletişim kutusuFigure 4 – Basic authentication login dialog

clip_image008

ÖzetSummary

Bu öğretici, windows kimlik doğrulamasını ASP.NET bir MVC uygulaması bağlamında nasıl kullanabileceğinizi açıklamıştır.This tutorial explained how you can use Windows authentication in the context of an ASP.NET MVC application. Uygulamanızın web yapılandırma dosyasında Windows kimlik doğrulamasını etkinleştirmeyi ve Kimlik Doğrulamayı IIS ile nasıl yapılandırabileceğinizi öğrendiniz.You learned how to enable Windows authentication within your application's web configuration file and how to configure authentication with IIS. Son olarak, denetleyici eylemlerine erişimi belirli Windows kullanıcıları veya gruplarıyla sınırlamak için <Yetkilendirme> özniteliğini nasıl kullanacağınızı öğrendiniz.Finally, you learned how to use the <Authorize> attribute to restrict access to controller actions to particular Windows users or groups.