我有一個簡單的WCF服務託管在使用wsHttpBinding的IIS 8上。我希望能夠控制那些用戶(域帳戶)有權訪問該服務。我怎樣才能做到這一點?也許有幾種方法可以做到這一點。我可以在web.config文件中定義帳戶,還是可以在IIS中進行設置?wsHttpBinding,只允許某些帳戶訪問服務
0
A
回答
1
您可以使用PrincipalPermission來控制它。
退房這樣的回答: WCF security with Domain Groups
在這裏你可以趕上MSDN: http://msdn.microsoft.com/en-us/library/ms735093(v=vs.110).aspx
1
你可以使用自定義的驗證器。
您需要從System.IdentityModel.Selectors命名空間繼承UserNamePasswordValidator。
public class ServiceValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if (string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(password))
{
throw new SecurityTokenException("Username and password required");
}
else
{
if (Authenticate(userName, password))
{
// no need to do anything else if authentication was successful. the request will be redirected to the correct web service method.
}
else
{
throw new FaultException("Wrong username or password ");
}
}
Web.config文件服務器:
<behaviors>
<serviceBehaviors>
<behavior name="SomeServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="MyApp.ServiceValidator, MyApp" />
<serviceCertificate findValue="CertificateNameHere" storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindBySubjectName" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
<wsHttpBinding>
<binding name="RequestUserName">
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
這是基本的東西你會^ h大街落實。然後,您可以在您的身份驗證/授權方法中限制哪些用戶應該被允許調用Web服務方法。
相關問題
- 1. 做fsockopen只允許某些服務器?
- 2. 允許Firebase存儲桶只能被某些用戶訪問
- 3. 如何只允許某些用戶訪問網頁?
- 4. 只允許ipad應用程序用戶訪問某些文件
- 5. MSSQL:只允許閱讀某些視圖的有限帳戶?
- 6. 允許Google服務帳戶YouTube通過API v3上傳訪問
- 7. 只允許某些用戶編輯ASPxGridView
- 8. 只允許某些事件
- 9. 只允許某些字符
- 10. 只允許某個用戶訪問Kentico中的某個頁面
- 11. php只允許訪問某個文件?
- 12. 允許(「null」)訪問您的SoundCloud帳戶
- 13. 允許Android市場訪問,但不允許Google商戶帳戶訪問
- 14. 只允許用戶只讀訪問woocommerce
- 15. AS3只允許訪問DisplayObject上的某些屬性
- 16. 只允許選定的域訪問某些頁面
- 17. 只允許某些(動態)IP的訪問網站總監
- 18. CodeIgniter只允許在登錄時訪問某些控制器
- 19. 只允許某些ips訪問我的「家庭網站」?
- 20. 只允許某些服務器/網站連接到腳本
- 21. 拒絕所有文件夾,但只允許某些IP,但允許完全訪問某些文件
- 22. 允許用戶只訪問我的內容提供商中的某些表格
- 23. 如何存儲敏感文件,並只允許訪問某些用戶
- 24. PHP - 允許用戶只訪問一次
- 25. 確保WCF服務的安全 - 允許某些Web應用程序訪問
- 26. 訪問被拒絕,Google服務帳戶不允許請求的範圍
- 27. 只允許某些操作併發
- 28. 允許NodeJS只控制某些目錄
- 29. RDiscount:只允許使用某些標籤
- 30. 檢查contraint只允許某些字符
可能的重複http://stackoverflow.com/questions/13326365/best-way-to-limit-wcf-service-to-specific-user-accounts –