C# 在C中使用凭据进行访问控制#

C# 在C中使用凭据进行访问控制#,c#,web-services,webclient,defaultnetworkcredentials,C#,Web Services,Webclient,Defaultnetworkcredentials,我有一个SOAP->web服务结构,使用C#。我已打开IIS-windows身份验证,因此我正在将DefaultNetworkCredentials添加到我的服务实例中的ClientCredentials。我可以使用这些凭据访问web服务。这不是问题所在 我想限制对web服务中包含的某些信息的访问,具体取决于试图访问此服务的用户。我不知道如何通过将凭据作为参数传递或通过任何其他方式从凭据中获取任何用户信息。任何建议都会有帮助 非常感谢 非常确定Windows身份验证将确定他们是否可以访问IIS中

我有一个SOAP->web服务结构,使用C#。我已打开IIS-windows身份验证,因此我正在将DefaultNetworkCredentials添加到我的服务实例中的ClientCredentials。我可以使用这些凭据访问web服务。这不是问题所在

我想限制对web服务中包含的某些信息的访问,具体取决于试图访问此服务的用户。我不知道如何通过将凭据作为参数传递或通过任何其他方式从凭据中获取任何用户信息。任何建议都会有帮助


非常感谢

非常确定Windows身份验证将确定他们是否可以访问IIS中的实际.asmx文件


您可以在web服务代码中使用HttpContext.Current.User来确定当前登录的用户名(然后验证从那里执行操作的权限)。

很抱歉造成混淆。是的,你说的很完美,但是我需要知道谁是web服务端的用户。我相信,将用户名作为参数以纯文本的形式传入,甚至是加密数据,很容易被欺骗,从而利用我的web服务。你知道这可以在不欺骗用户名的情况下完成吗?还是有更优雅的解决方案?注意:我没有网络或安全背景。请将我的答案编辑为更简洁。如果安装正确,则与Windows身份验证结合使用的HttpContext.Current.User不应是可欺骗的。您需要在web.config或IIS中禁用任何其他身份验证方法。