2015-04-24 13 views
5

Kịch bảnCách cấu hình Web Api 2 và IIS để xác thực cơ bản?

  • Tôi đã một Api Web 2.2 dịch vụ RESTful thực hiện với VS2012 C#
  • Tôi đang sử dụng xác thực cơ bản với một người dùng kiểm tra tùy chỉnh/pass (hoạt động tốt)
  • Một số phương pháp đã [AllowAnonymous] thuộc tính
  • Một số phương pháp đang sử dụng [Authorize(Roles = "myRol")]
  • Trong các công trình địa phương cũng như (đọc người dùng và vượt qua, kiểm tra cơ sở dữ liệu, từ chối hoặc cho phép khi nào, cho phép ano nymous khi cần, vv)

Vấn đề

Khi tôi triển khai dịch vụ trong môi trường DEV cho lần đầu tiên, tôi could'nt đăng nhập:

  • Methods với AllowAnonymous trả lại 200
  • Phương thức trả về bảo mật cơ bản 401

liệu(xin hỏi hoặc nhận xét cho một bản cập nhật về vấn đề này)

Đây là web.config của tôi:

<system.webServer> 
    <modules> 
    <add name="BasicAuthHttpModule" type="WebHostBasicAuth.Modules.BasicAuthHttpModule, myAssemblyName" /> 
</modules> 

Đây là tiêu đề của tôi (nó hoạt động trong địa phương):

Authorization: Basic YXR1cG9uZTp0ZXN0 
Content-Type: application/json; charset=utf-8 

và đây là câu trả lời của tôi:

Status: 401 Unauthorized
liệu: {"message":"Authorization has been denied for this request."}
Tiêu đề:

Pragma: no-cache 
Date: Fri, 24 Apr 2015 14:36:27 GMT 
Server: Microsoft-IIS/8.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Content-Type: application/json; charset=utf-8 
Cache-Control: no-cache 
Content-Length: 61 
Expires: -1 

Đây là cấu hình IIS của tôi (Nếu tôi đặt trong "trên "Xác thực cơ bản, IIS hỏi tôi thông tin đăng nhập mà tôi không có và/hoặc chúng không hợp lệ):

IIS Config


Câu hỏi:

Đây có phải là tốt configurated? Tôi nhớ cái gì?
Tôi làm cách nào để xem nhật ký hoặc nội dung nào đó về lỗi nội bộ của vấn đề này?

Xin cảm ơn trước.

+0

bạn có thêm cơ sở dữ liệu vào môi trường dev không? VS Tạo một kiểu cơ sở dữ liệu nhỏ ẩn khi bạn bắt đầu một dự án với xác thực được cung cấp. Bạn cần phải đẩy cơ sở dữ liệu đến máy chủ dev. – AntoineLev

+0

@AntoineLev Có xác thực tùy chỉnh với mô hình người dùng/rol tùy chỉnh của tôi –

Trả lời

0

Có vẻ như mã ủy quyền của bạn không thể kết nối với cơ sở dữ liệu.

Nhận xét mã kết nối với DB và trả về true bất kể và xem liệu nó có cho phép bạn vượt qua hay không. Sử dụng loại bỏ để thu hẹp đến nơi mà vấn đề là. Bạn cần cập nhật chuỗi kết nối DB (web.config), v.v. để phù hợp với môi trường dev. Bạn không thể mong đợi những gì làm việc trên địa phương để làm việc trong môi trường khác nếu bạn không điều chỉnh cho phù hợp. Hy vọng rằng sẽ giúp.

+0

Cảm ơn bạn. Đó là về một vấn đề leo thang với DAS. DAS đã trở lại 401, vì vậy bạn đã gần. –

Các vấn đề liên quan