保护IIS托管的WCF服务并在Xamarin中使用它,Forms

5jvtdoz2  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(100)

我有一个运行在IIS-10上的IIS托管的WCF服务应用程序。WCF已在https上运行。我的问题是,该服务目前可供所有人通过我在IIS上配置的链接访问。WCF的目的是在我的Xamarin.Forms-App和SQL数据库之间传输数据。我想知道如何使我的服务通过身份验证(用户名、密码?)或类似的东西,以及我如何在Xamarin.Forms中进行身份验证以“打开”连接。
我在谷歌上找不到任何与我的情况相匹配的东西,所以也许你可以帮我解决我的问题。

ppcbkaq5

ppcbkaq51#

您可以使用多个身份验证方案和WCF进行身份验证。对于IIS承载的服务,可以根据IIS中选择的内容相应地设置身份验证。
元素ServiceAuthenticationBehavior<serviceAuthenticationManager>用于认证服务。This article有更详细的解释。

ServiceAuthenticationBehavior sab = null;  
sab = serviceHost.Description.Behaviors.Find<ServiceAuthenticationBehavior>();  
  
if (sab == null)  
{  
    sab = new ServiceAuthenticationBehavior();  
    sab.AuthenticationSchemes = AuthenticationSchemes.Basic | AuthenticationSchemes.Negotiate | AuthenticationSchemes.Digest;  
    serviceHost.Description.Behaviors.Add(sab);  
}  
else  
{  
     sab.AuthenticationSchemes = AuthenticationSchemes.Basic | AuthenticationSchemes.Negotiate | AuthenticationSchemes.Digest;  
}

字符串
然后在配置文件中使用元素<serviceAuthenticationManager>

<behaviors>  
      <serviceBehaviors>  
        <behavior name="limitedAuthBehavior">  
          <serviceAuthenticationManager authenticationSchemes="Negotiate, Digest, Basic"/>  
          <!-- ... -->  
        </behavior>  
      </serviceBehaviors>  
</behaviors>


您可以阅读the article about Authentication of Xamarin.Forms以获得更多帮助。

相关问题