public void SetPassword(string strUserDN, string strPassword)
{
string strDomainName = Utility.GetDomainName(strUserDN); DirectoryEntry de = GetDirectoryEntryByDN(strDomainName, strUserDN);
de.AuthenticationType = AuthenticationTypes.Secure;
de.Invoke("SetPassword", new object[] { strPassword }); de.CommitChanges(); //密码永不过期
de.Properties["userAccountControl"].Value = "66048";//66048是两个值的组合:密码永不过期(65536)+正常账号(512,未禁用)
de.CommitChanges(); }“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))源错误:
行 61:
行 62: DirectoryEntry de = ADUser.GetDirectoryEntryByDN(strDomainName, strUserDN);
行 63: de.Invoke("SetPassword", new object[] { strPassword });
行 64: de.CommitChanges();
行 65:
源文件: f:\宜宾公安\WebSite\ADDemo.aspx.cs 行: 63 堆栈跟踪:
[ArgumentException: 参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))][TargetInvocationException: 调用的目标发生了异常。]
System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) +228
ADDemo.SetPassword(String strUserDN, String strPassword) in f:\WebSite\ADDemo.aspx.cs:63
ADDemo.SetPass(String strLoginID) in f:\WebSite\ADDemo.aspx.cs:39
ADDemo.Button1_Click(Object sender, EventArgs e) in f:\WebSite\ADDemo.aspx.cs:25
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746
{
string strDomainName = Utility.GetDomainName(strUserDN); DirectoryEntry de = GetDirectoryEntryByDN(strDomainName, strUserDN);
de.AuthenticationType = AuthenticationTypes.Secure;
de.Invoke("SetPassword", new object[] { strPassword }); de.CommitChanges(); //密码永不过期
de.Properties["userAccountControl"].Value = "66048";//66048是两个值的组合:密码永不过期(65536)+正常账号(512,未禁用)
de.CommitChanges(); }“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))源错误:
行 61:
行 62: DirectoryEntry de = ADUser.GetDirectoryEntryByDN(strDomainName, strUserDN);
行 63: de.Invoke("SetPassword", new object[] { strPassword });
行 64: de.CommitChanges();
行 65:
源文件: f:\宜宾公安\WebSite\ADDemo.aspx.cs 行: 63 堆栈跟踪:
[ArgumentException: 参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))][TargetInvocationException: 调用的目标发生了异常。]
System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) +228
ADDemo.SetPassword(String strUserDN, String strPassword) in f:\WebSite\ADDemo.aspx.cs:63
ADDemo.SetPass(String strLoginID) in f:\WebSite\ADDemo.aspx.cs:39
ADDemo.Button1_Click(Object sender, EventArgs e) in f:\WebSite\ADDemo.aspx.cs:25
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746
解决方案 »
- 我快被气晕了,combobox总是返回“System.Data.DataRowView"值???
- 安装vs2005老是出错,提示:“安装程序未找到baseline数据”
- 技术探讨
- 关于将数据库里边的内容以word的形式输出啊?
- radioButton自动执行Click事件的问题
- 关于数据库操作效率的问题
- 这样的C#语句函数正确吗?
- 为什么下面的两段码同时运行一段时间后就会报错?
- C#語法,高手幫幫忙, 40分求助
- NET 2.0中的TREEVIEW中的图标在XP中丢失了,是VS的BUG,现在有补丁嗎
- 求一正则表达式,简单,但我不会
- c# 中选中Checkbox,弹出新窗口,并让隐藏的textbox显示出来,如何实现?
这行错误。这个是自带的DLL
val = (int) usr.Properties["userAccountControl"].Value;
usr.Properties["userAccountControl"].Value = val |
ADS_UF_SMARTCARD_REQUIRED;
usr.CommitChanges(); ---- 摘自msdn好像我说对了
没有到那一行 就出问题了。
其他项目没有出问题。
这个代码以前跑起来没有问题。
不晓得是不是 AD服务器出问题了。
你需要用 administrator 用户启动 asp.net 或者 打开 DirectoryEntry 时 加上管理员 用户名和密码
恩。
添加了权限的
Domain Admins