是否有一种方法可以只将.net web服务中的某个web方法暴露给特定的用户/组?

本文关键字:方法 web 暴露 用户 服务 一种 是否 net | 更新日期: 2023-09-27 18:09:58

我有一个web服务,它有多个web方法。是否有一种方法可以只将这些web方法中的一种暴露给特定的组或个人?

到目前为止,我使用Windows身份验证和用户组进行授权。这只允许完全访问web服务。

<authentication mode="Windows"/>
<authorization>
    <allow users="*" roles="domain'groupName"/>
    <deny users="*"/>
</authorization>

是否有办法在角色属性中添加另一个组,只允许访问"MyMethod",而不是存在于web服务中的其他web方法?

任何帮助都非常感谢!

是否有一种方法可以只将.net web服务中的某个web方法暴露给特定的用户/组?

查看WCF中的身份验证、授权和身份一文中的WCF中基于角色的授权选项。声明性授权部分似乎就是您要找的。

我不认为您可以通过方法定义身份验证,但您可以通过目录或页面定义身份验证。所以也许如果你把你的方法重新排列成离散的服务。

下面是一个如何通过页/目录 进行身份验证的示例
<configuration>
   <location path="Logon.aspx">
      <system.web>
         <authorization>
            <allow users="*" roles="domain'groupName"/>              
            <deny users="*"/>  
         </authorization>
      </system.web>
   </location>
</configuration>

这里是原始文章的链接,可能会对你有所帮助。http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx