Xác thực Windows Express Windows


245

Tôi đang cố gắng sử dụng IIS Express với VS2010 để lưu trữ ứng dụng silverlight. Tôi đã sửa đổi tệp applicationationhost.config để cho phép sửa đổi các cài đặt cấu hình phù hợp. Tôi có những điều sau đây trong web.config:

<location path="">
  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="false" />
        <windowsAuthentication enabled="true" />
      </authentication>
    </security>
  </system.webServer>
</location>

Tôi không được xác thực và cuộc gọi dịch vụ tên miền của tôi trả về một bản ghi null là người dùng. Tôi đã có thể làm cho nó hoạt động sau khi cài đặt VS2010 SP1 BETA nhưng tôi đang cố gắng để nó hoạt động chỉ với IIS Express.

Làm cách nào để tôi kích hoạt Xác thực Windows để hoạt động với IIS Express. Có một cài đặt cấu hình mà tôi đang thiếu?

Câu trả lời:


276

tùy chọn-1 :

chỉnh sửa \My Documents\IISExpress\config\applicationhost.configtập tin và kích hoạt windowsAuthentication, tức là:

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

tùy chọn-2 :

Mở khóa cửa sổ Phần xác thực trong \ My Documents \ IISExpress \ config \ applicationationhost.config như sau

<add name="WindowsAuthenticationModule" lockItem="false" />

Thay đổi cài đặt ghi đè cho các loại xác thực được yêu cầu thành 'Cho phép'

<sectionGroup name="security">
    ...
    <sectionGroup name="system.webServer">
        ...
        <sectionGroup name="authentication">
            <section name="anonymousAuthentication" overrideModeDefault="Allow" />
            ...
            <section name="windowsAuthentication" overrideModeDefault="Allow" />
    </sectionGroup>
</sectionGroup>

Thêm vào sau trong web.config của ứng dụng

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <security>
        <authentication>
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
</configuration>

Liên kết dưới đây có thể giúp: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/

Sau khi cài đặt VS 2010 SP1, tùy chọn áp dụng 1 + 2 có thể được yêu cầu để xác thực windows hoạt động. Ngoài ra, bạn có thể cần đặt xác thực ẩn danh thành false trong IIS Express applicationationhost.config:

<authentication>

            <anonymousAuthentication enabled="false" userName="" />

đối với VS2015, tệp cấu hình ứng dụng IIS Express có thể được đặt ở đây:

$(solutionDir)\.vs\config\applicationhost.config

<UseGlobalApplicationHostFile>tùy chọn trong tệp dự án chọn tệp cấu hình mặc định hoặc giải pháp cụ thể.


Cảm ơn. Nhưng tôi đã thử các tùy chọn ở trên. Nhưng tôi vẫn không thể sử dụng Windows xác thực. Tôi đoán tôi sẽ phải đợi VS2010 / SP1 để có được chức năng này.
Đánh dấu

3
tùy chọn hai làm việc cho tôi. đã mất một thời gian để tìm bài này mặc dù!
TodK

Câu hỏi này không thực sự được áp dụng nữa kể từ khi VS2010 sp1 xuất hiện. Tôi đã cố gắng để nó hoạt động mà không cần cài đặt sp1. Tôi đoán là sp1 đang làm gì đó để thiết lập nó lần đầu tiên mà tôi không thể tìm ra. Tôi có thể tiếp tục và đánh dấu câu trả lời này đúng, mặc dù thực sự không phải vì sp1 không được cài đặt là điều kiện tiên quyết.
Đánh dấu

1
Cảm ơn người đàn ông! NTLM đã làm việc bằng cách vô hiệu hóa xác thực ẩn danh.
Rob Angelier

4
Trong VS2015, cấu hình IIS Express được chuyển vào cấu trúc giải pháp, cụ thể, $ (SolutionDir) \.
Tedford

401

Visual Studio 2010 SP1 và 2012 đã thêm hỗ trợ cho IIS Express loại bỏ nhu cầu chỉnh sửa dấu ngoặc góc.

  1. Nếu bạn chưa có, hãy nhấp chuột phải vào một dự án có hương vị web và chọn "Sử dụng IIS Express ...".
  2. Sau khi hoàn thành, chọn dự án web và nhấn F4để tập trung vào bảng Properties.
  3. Đặt thuộc tính "Xác thực Windows" thành Đã bật và thuộc tính "Xác thực ẩn danh" thành Vô hiệu hóa.

nhập mô tả hình ảnh ở đây

Tôi tin rằng giải pháp này vượt trội so với các lựa chọn của vikomall.

  • Tùy chọn # 1 là thay đổi toàn cầu cho tất cả các trang IIS Express.
  • Tùy chọn # 2 rời khỏi hành trình phát triển trong web.config.
    • Hơn nữa, nó có thể sẽ dẫn đến lỗi khi được triển khai lên IIS 7.5 trừ khi bạn làm theo quy trình "mở khóa" trên applicationhost.config của máy chủ IIS.

Giải pháp dựa trên giao diện người dùng ở trên sử dụng các yếu tố vị trí dành riêng cho trang web trong applicationhost.config của IIS Express khiến ứng dụng không bị ảnh hưởng.

Thêm thông tin tại đây: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx


5
Để nhấn mạnh những gì tôi đã bỏ lỡ - menu ngữ cảnh thuộc tính và Alt-Enterphím tắt không thay thế hoàn toàn các chi tiết ngăn thuộc tính cho phép bạn thay đổi cho dù cửa sổ xác thực có được bật hay không. Sử dụng F4hoặc nhấp vào khung thuộc tính để thực sự thấy các thuộc tính.
Kaleb Pederson

Tôi đã vật lộn với nhiệm vụ này trong vài ngày trước khi bắt đầu lại với bài viết này: msdn.microsoft.com/en-us/l Library / gg703322% 28VS.98% 29.aspx Về cơ bản, bỏ qua mọi thứ trong bài viết gốc, bắt đầu lại bằng một " virgin "applicationationhost.config và chỉ kích hoạt các cài đặt theo câu trả lời này. Cuối cùng tôi cũng nhận được xác thực Windows! Cảm ơn!!
DaveN59

Nó kết thúc việc thay đổi cài đặt IISExpressWindowsAuthentication từ 'enable' thành vô hiệu hóa 'trong .csproj. <IISExpressWindowsAuthentication> bị vô hiệu hóa </ IISExpressWindowsAuthentication>
Cameron

7
Hai tùy chọn này có màu xám và bị vô hiệu hóa đối với tôi. Bất cứ ý tưởng tại sao?
awl

1
2 tùy chọn có màu xám vì bạn có cái này trong Cấu hình IIS Express <phần tên = "nặc danh" xác thực "overrideModeDefault =" Cho phép "/> <phần tên =" windowsAuthentication "overrideModeDefault =" Cho phép "/> loại bỏ phần ghi đèModeDefault =" Cho phép " "và họ sẽ bỏ qua
Micah Armantrout

9

Dựa trên câu trả lời từ booij boy, hãy kiểm tra xem bạn đã kiểm tra tính năng "xác thực windows" trong Bảng điều khiển -> Chương trình -> Bật tính năng của windows hoặc của -> Dịch vụ thông tin Internet -> Dịch vụ web toàn cầu -> Bảo mật

Ngoài ra, dường như có một sự khác biệt lớn khi sử dụng firefox hoặc internet explorer. Sau khi dán nhãn "xác thực windows", nó hoạt động với tôi nhưng chỉ trong IE.


2
Và làm cho nó hoạt động trong firefox: markmonica.com/2007/11/20/ từ
bees73


5

Ngoài những câu trả lời tuyệt vời này, trong ngữ cảnh của môi trường dev của IISExpress và để khắc phục lỗi "system.web/identity@impersonate" khét tiếng, bạn có thể chỉ cần đảm bảo cài đặt sau được đặt trong tệp ứng dụng của bạn .

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
</configuration>

Điều này sẽ cho phép bạn linh hoạt hơn trong quá trình phát triển và thử nghiệm, mặc dù hãy chắc chắn rằng bạn hiểu ý nghĩa của việc sử dụng cài đặt này trong môi trường sản xuất trước khi thực hiện.

Bài viết hữu ích:


Đã vô tình gặp phải điều này, nhưng nó đã hoạt động :-)
joshmcode

2

Trong IIS Manager, nhấp vào trang web của bạn. Bạn cần phải "ở chế độ xem tính năng" (thay vì "chế độ xem nội dung")

Trong phần IIS của "chế độ xem tính năng", chọn tính năng được gọi là "xác thực" và doulbe nhấp vào nó. Tại đây bạn có thể kích hoạt Xác thực Windows. Điều này cũng có thể (theo tôi nghĩ trong một trong những gợi ý trong chuỗi) bằng một cài đặt trong web.config (...)

Nhưng có thể bạn có một web.config bạn không muốn xem xét quá nhiều xung quanh. Sau đó, chủ đề này sẽ không được giúp đỡ quá nhiều, đó là lý do tại sao tôi thêm câu trả lời này.


0

Câu trả lời này có thể hữu ích nếu: 1) trang web của bạn được sử dụng để xác thực Windows trước khi nâng cấp lên Visual Studio 2015 và 2) và trang web của bạn đang cố tải /login.aspx(mặc dù không có tệp nào như vậy trên trang web của bạn).

Thêm hai dòng sau vào appSettingsphần của trang web của bạn Web.config.

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>

0

Cùng một lưu ý - VS 2015, .vs \ config \ applicationationhost.config không hiển thị hoặc không khả dụng.

Theo mặc định, thư mục .vs bị ẩn (ít nhất là trong trường hợp của tôi).

Nếu bạn không thể tìm thấy thư mục .vs, hãy làm theo các bước dưới đây.

  1. Nhấp chuột phải vào thư mục Giải pháp
  2. chọn 'Thuộc tính'
  3. Trong Attributesphần, nhấp vào Hiddenhộp kiểm (bỏ chọn mặc định),
  4. sau đó nhấp vào nút 'Áp dụng'
  5. Nó sẽ hiển thị cửa sổ xác nhận 'Áp dụng các thay đổi cho thư mục này, tùy chọn thư mục con và tệp' được chọn, nhấn 'Ok'.

    Lặp lại bước 1 đến 5, ngoại trừ step 3, lần này bạn cần unchecktùy chọn 'Ẩn' mà bạn đã kiểm tra trước đó.

Bây giờ sẽ có thể xem thư mục .vs.


0

Sau khi thực hiện mọi thứ trong các câu trả lời trên, tôi nhận ra mình không chạy Visual Studio với tư cách Quản trị viên. Sau khi chạy như Admin, vấn đề đã được giải quyết.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.