我计划采用Windows集成认证,这时我发现打开BS网站的任何界面都要弹出一个密码框,可是我只想对WebService加密,问题1:是否需要将页面和WebService分开发布??页面采用匿名认证,WebService采用Windows认证。
问题2:别人的系统需要调用我的WebService是否我只需要告诉他地址和Windows认证的用户名密码即可?
问题3:Windows认证使用的帐户是否可以分权限?比如,我需要这个帐户只能调用某些WebService,其他Service就不行
问题2:别人的系统需要调用我的WebService是否我只需要告诉他地址和Windows认证的用户名密码即可?
问题3:Windows认证使用的帐户是否可以分权限?比如,我需要这个帐户只能调用某些WebService,其他Service就不行
IIS可以控制目录,甚至是文件的的安全设置,右键点击某个文件,执行属性,在File Security中设置 Authentication.问题2:别人的系统需要调用我的WebService是否我只需要告诉他地址和Windows认证的用户名密码即可?
是的。如果用户是域用户的话,还需要告诉域的名字。问题3:Windows认证使用的帐户是否可以分权限?比如,我需要这个帐户只能调用某些WebService,其他Service就不行
可以在你程序里判断。使用下面的方法取得caller的用户名,再判断
[WebMethod]
public string WhoAmI() {
return "Running as User : " +
Thread.CurrentPrincipal.Identity.Name;
}
或者使用asp.net的web.config中的URL Authorization配置。
<authorization>
<deny user="DomainName\UserName" />
<allow roles="DomainName\WindowsGroup" />
</authorization>
参考
Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication
http://msdn.microsoft.com/en-us/library/ff649362.aspxHTTP Security and ASP.NET Web Services
http://msdn.microsoft.com/en-us/library/ms996415.aspxSetting authorization rules for a particular page or folder in web.config
http://weblogs.asp.net/gurusarkar/archive/2008/09/29/setting-authorization-rules-for-a-particular-page-or-folder-in-web-config.aspx
这里面,怎么配置?我需要设置多个帐号