我需要澄清如何在我的asp.net应用程序中应用域登录。
所以我有以下架构:三台机器:一台是工作的asp.net应用程序,另一台是数据库服务器,从最后一台机器我正在访问应用程序。
我的应用程序应该像这样工作:我从上一台机器访问应用程序它需要我的域名检查它是否存在于用户表中它应该验证我。 但它只有在应用程序在一台机器上运行并且我从同一台机器上访问应用程序时才有效。它与web.config文件中的模拟相关联,只允许我访问本地资源。
我在MSDN上找到了一些文章,但它们太复杂了,无法应用和理解:
从这些文章我知道解决方案应该使用kerberos,委托和模仿。但我不知道如何应用它。
在我的应用程序中实现域登录需要做些什么?你有一个很好的教程怎么做?我是否只需要修改我的应用程序代码或服务器配置(第二台机器)?
更新1
我记录了一些信息:
在我的机器上:
System.Security.Principal.WindowsIdentity.GetCurrent().Name
返回:[myDomainName] [myUserName]
System.Security.Principal.WindowsIdentity.GetCurrent().AuthenticationType
返回:Kerberos
在三台机器架构上:
System.Security.Principal.WindowsIdentity.GetCurrent().Name
返回:[IIS APPPOOL] [ApplicationName]
System.Security.Principal.WindowsIdentity.GetCurrent().AuthenticationType
返回:谈判
答案 0 :(得分:0)
您需要设置ASP.Net以使用Windows身份验证和模拟(听起来您已经这样做了)。然后,您需要为kerberos委派设置Web服务器,并确保为IIS和应用程序服务器配置了正确的spn。
它正在2机器案例中工作,因为那里没有代表团参与。这是第二个需要kerberos的认证跳。