C# 如何保护WCF服务免受未经授权的访问?

C# 如何保护WCF服务免受未经授权的访问?,c#,wcf,C#,Wcf,编辑: 请注意两件事:应用程序将公开,用户不需要任何帐户。如果WCF更好,您还可以建议其他解决方案 我正在用C语言开发一个应用程序,它可以很容易地安装其他应用程序。此应用程序支持的程序列表将存储在公共服务器上的数据库中只有我的应用程序才能访问此数据库每个人都可以安装此应用程序,用户不需要任何帐户 现在,我想知道应用程序和服务器之间的通信应该是什么样子。我正在考虑开发一个WCF服务,但是每个人都可以轻松地连接到该服务(只有我的程序才能访问该服务) 有没有办法保护WCF服务不被未经授权的访问?或者,

编辑:

请注意两件事:应用程序将公开,用户不需要任何帐户。如果WCF更好,您还可以建议其他解决方案

我正在用C语言开发一个应用程序,它可以很容易地安装其他应用程序。此应用程序支持的程序列表将存储在公共服务器上的数据库中只有我的应用程序才能访问此数据库每个人都可以安装此应用程序,用户不需要任何帐户

现在,我想知道应用程序和服务器之间的通信应该是什么样子。我正在考虑开发一个WCF服务,但是每个人都可以轻松地连接到该服务(只有我的程序才能访问该服务)

有没有办法保护WCF服务不被未经授权的访问?或者,您是否有更好的想法,该应用程序和服务器之间的通信应该是什么样子


提前感谢您的帮助

有关此主题的帮助,您可以查看以下链接

https://msdn.microsoft.com/en-us/library/ms731925.aspx
https://msdn.microsoft.com/en-us/library/aa702565.aspx

您可以将绑定配置为执行基于用户名和密码的身份验证,在验证用户名和密码是否有效的情况下,只有您才能授予对服务的访问权。

NET内置了一些功能,以确保调用您的代码有权这样做。例如,请看以下代码片段:

[PrincipalPermission(SecurityAction.Demand, Role = "MyLocalSecurityGroup"]
public SearchResults Find(string contractNumber)
{
    // ...
}
请注意[PrinciplePermission]属性。此属性告诉.NET,仅允许作为“MyLocalSecurityGroup”角色成员的主体运行此方法(其中主体是用户/服务帐户,角色是服务器上本地定义的安全组)。换句话说,要运行此方法,调用方必须在指定的本地安全组成员的帐户下运行


有关如何创建群的更多详细信息,请单击此处:

感谢您的回答,但正如我所说,用户不需要任何帐户。感谢您的回答,但正如我所写,此应用程序将公开提供,因此我认为这不是一个好的解决方案(如果我错了,请纠正我)。