我有一个asp.net (.net 3.5) 网站,在两台带有IIS 7 的Windows 2008 服务器上运行。Web 服务器包含UI 代码,它调用应用服务器上的wcf Web 服务。然后,这些 wcf 服务调用 Oracle 数据库。
我的问题是在应用服务器上的 C:\Users 中创建了本地用户配置文件。这些本地用户配置文件在网站上具有相同的用户名称。我注意到当用户在网站上更改密码时会发生这种情况。为网站上的每个帐户创建一个本地用户配置文件现在占用了大量空间!
有谁知道为什么会发生这种情况以及我该如何阻止它?我一直在搜索和搜索,我只能在 windows 论坛上找到一个和我有同样问题的人。不幸的是,没有人回答他/她的帖子。希望我在这里有更好的运气!:)
起初我认为如果我在 IIS 中为我的所有应用程序池关闭“加载用户配置文件”设置可能会起作用,但这并没有解决问题。 编辑:我认为此设置负责为应用程序池创建用户配置文件,而不是实际的网站用户。
我正在考虑更改应用服务器本地安全策略中的“允许本地登录”设置并删除“用户”,因为我认为只有“管理员”需要此权限。但是,在我的环境中,通过所有程序来更改这样的设置有点痛苦,我什至不确定它是否会起作用,所以我希望在尝试之前在这里得到某种回应.
PrincipalContext/UserPrincipal
我忘了提,我想我知道创建配置文件的罪魁祸首代码。不幸的是,我没有能力通过代码的这个特定部分进行调试,因为它在 Web 服务中,所以我不能告诉你确切的行。但是,如果我不得不猜测,我认为用户配置文件是在以下代码行中创建的:
Dim pcDomain As New PrincipalContext(ContextType.Domain, _strDomain, _strPath)
Dim upDomain As UserPrincipal = UserPrincipal.FindByIdentity(pcDomain, strUserName)
upDomain.ChangePassword(strCurrentPassword, strNewPassword)
2014 年 2 月 19 日编辑
我还想补充一点,网站的用户通过活动目录进行身份验证。