我有一个asp.net(.net 3.5)网站,运行在两台带有IIS 7的Windows 2008服务器上.Web服务器包含UI代码,用于调用应用服务器上的wcf Web服务。然后,这些wcf服务调用Oracle数据库。
我的问题是在应用服务器上的C:\ Users中创建了本地用户配置文件。这些本地用户配置文件在网站上具有相同的用户名。我注意到当用户在网站上更改密码时会发生这种情况。拥有网站上每个帐户的本地用户个人资料现在占用了大量空间!
有没有人知道为什么会发生这种情况以及如何阻止它?我搜索和搜索过,我只能在Windows论坛上找到一个与我有同样问题的人。不幸的是,没有人回答他/她的帖子。希望我在这里有更好的运气! :)
起初我认为如果我关闭了#34;加载用户个人资料"在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日
我还想补充一点,网站用户通过活动目录进行身份验证。