Chúng tôi đang trong quá trình phát triển một dịch vụ web WCF REST mà chỉ nhận được một loạt các văn bản tùy ý từ bất kỳ người dùng nặc danh nào và sau đó thực hiện một số xử lý ở mặt sau.WCF REST Service - 401 Unauthorized
Ví dụ, đây là một phương pháp từ dịch vụ web của chúng tôi:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
[WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}¶mB={paramB}")]
public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
{
//do some stuff...
}
}
Nếu chúng ta chỉ cần sử dụng các thiết lập mặc định IIS chúng ta có được một (401) Unauthorized
. Tuy nhiên, sau nhiều thử nghiệm và sai sót, chúng tôi đã tìm ra rằng chúng tôi có thể làm cho nó hoạt động bằng cách cho phép VIẾT quyền truy cập vào 'Mọi người' trên tệp thực tế .svc
cho dịch vụ của chúng tôi.
Câu hỏi của tôi là: tại sao trên thế giới IIS cần phải có quyền truy cập VIẾT vào tệp .svc
để làm việc này? Có cách nào tốt hơn hoặc tôi bị mắc kẹt với cách giải quyết này (và có thể không an toàn)?
WTF Microsoft?
Có thể liên quan:
- PUT and DELETE in RESTful WCF Service cause 401 Unauthorized error
- IIS7 Post/Put/Patch/Delete WCF oData - Authentication Failure 401.3
Quyền truy cập của bạn không nhất thiết cần phải được cấp cho "Mọi người". Thay vào đó, người dùng được xác thực phải có các quyền này. Để truy cập nặc danh, đây là IUSR. – chiccodoro