2014-10-17 83 views
0

我正在開發WCFRest服務並希望通過一個用戶標識和密碼對其進行身份驗證。 瀏覽網上很多東西。但事情很複雜。 我想知道有沒有什麼辦法給Web配置文件中的單個用戶名,密碼的權限。Web配置文件中的WCF Rest服務認證

<Location path="Test.svc"> 
    <system.web> 
     <authorization> 
      <denyusers="?"/> 
     </authorization> 
    </system.web> 
</Location 

如果有什麼方法可以驗證它,請幫我解決這個問題。

回答

0

這是事情:你不想只允許一個特定的用戶,你想允許一個特定的角色,也就是允許這樣做的人。使用用戶ID和密碼意味着,如果您需要更改允許誰(因爲該人已被解僱,或者因爲現在有2人擁有該權限),您必須更改web.config並重新部署文件,在極端情況下可能會破壞網站。

相反,實現一個完整的會員制度,包括角色,然後做到這一點:

<Location path="Test.svc"> 
    <system.web> 
     <authorization> 
      <allow roles="[RoleNameHere]"> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</Location> 

然後,您可以添加您想通過這樣的標準方式給訪問該角色的用戶您的會員資格提供者和他/她將自動被允許訪問,而其他人都被拒絕。您也可以輕鬆更改任何人被允許或拒絕,因爲這是數據更改,而不是代碼更改。

+0

嗨感謝您的解決方案。我沒有使用任何成員資格提供程序,我只想驗證用戶名=「testusername」password =「testpassword」沒什麼奇特的。我想嘗試在WCF寧靜服務。 – Gautam 2014-10-17 13:32:59

+0

如果您想真正使用用戶名,請用'users =「username」'替換'roles =「...」'。請小心我所說的話:它不容易擴展,如果你在用戶名中輸入錯誤,它會中斷。 – Nzall 2014-10-17 13:39:31

+0

我在配置文件<位置路徑= 「TestService.svc」> <授權> <允許用戶= 「用戶名」/> <拒絕用戶= 「?」/> 使用此代碼 服務方法總是可訪問的。它不要求任何認證。 – Gautam 2014-10-17 13:48:28