在Silverlight/.NET Web应用程序上启用SSO:NTLM?
我使用Silverlight、.NET4(含VB)、RIA服务,并在VS2010下开发。 我正在尝试开发一个允许SSO(单点登录,即通过Windows用户名和Active Directory对应用程序进行自动身份验证)并使用表单身份验证(如果SSO失败,则针对DB登录)的应用程序,这就是我遇到的问题 我想做的是:在Silverlight/.NET Web应用程序上启用SSO:NTLM?,.net,silverlight,active-directory,single-sign-on,ntlm,.net,Silverlight,Active Directory,Single Sign On,Ntlm,我使用Silverlight、.NET4(含VB)、RIA服务,并在VS2010下开发。 我正在尝试开发一个允许SSO(单点登录,即通过Windows用户名和Active Directory对应用程序进行自动身份验证)并使用表单身份验证(如果SSO失败,则针对DB登录)的应用程序,这就是我遇到的问题 我想做的是: 在应用程序启动时,通过使用RIA服务(相当于Web服务)调用服务器获取Windows用户名,然后返回通过HTTP请求找到的名称(HttpContext.Current.request.
HttpContext.Current.request.LogonUserIdentity.name
)。为什么这么昂贵的电话?因为Windows用户名无法在客户端访问,其他堆栈溢出主题将向您显示- 设法在客户端获取用户名(但据我所知,这将是一个奇迹;即使在默认的ASP.NET页面上使用javascript,我也无法做到)
- 使用NTLM.NET身份验证机制
- 配置IIS或使用的服务器(Windows server 2008),以便我在服务器端收到一个良好的“域\用户”(可能通过信任设置…?)
- 使用Windows身份验证,但我如何根据DB验证用户
谢谢你的帮助,这让我快发疯了。。。此外,这也变得越来越紧迫:-(嗯,我找到的唯一方法是通过javascript和ActiveX控件获取用户:
var wshshell = new ActiveXObject("wscript.shell");
var username = "UserID=" + wshshell.ExpandEnvironmentStrings("%username%");
当然,这会引起部署问题,因为:
- 您的所有用户都必须使用,即
- 他们必须设置允许ActiveX的参数
我很幸运,因为第1点被特别提到,第2点我使用了一个
.reg
文件在所有计算机上执行。我不明白:SSO和Forms AuthN。对我来说,SSO意味着我登录Windows,不必登录其他任何东西。你能详细说明一下吗?是的,我的客户想要他的身份验证的方式非常复杂-他ants首先访问数据库,以获取触发身份验证类型的标志,即Active Directory或DB。