小编Ric*_*den的帖子

从WindowsIdentity获取用户的显示名称

我在使用Windows身份验证的ASP.NET应用程序中.

我正在使用HttpContext.Current.User.Identity.Name来获取当前经过身份验证的用户的用户名,该用户以DOMAIN\USERNAME格式获取用户名.这工作正常.

是否有一种简单的方法可以将其转换为显示名称(例如"Richard Gadsden"),就像XP中我的开始菜单顶部显示的名称一样?

如果必须,我想我可以通过System.DirectoryServices并查询到ADSI,但肯定有更简单的方法吗?

vb.net asp.net

11
推荐指数
2
解决办法
8925
查看次数

用于Microsoft Office的.NET加载项的单元测试

有没有人对Office托管应用程序加载项的单元测试有任何建议?我正在使用NUnit,但我遇到了与MSTest相同的问题.

问题是在Office应用程序(在我的例子中是Word)中加载了.NET程序集,我需要对.NET程序集的该实例的引用.我不能只是实例化对象,因为它不会有一个Word实例来做事情.

现在,我可以使用Application.COMAddIns("addin的名称").对象接口来获取引用,但这会得到一个通过RequestComAddInAutomationService返回的COM对象.到目前为止,我的解决方案是,对于该对象,我想要测试真实.NET对象中的每个方法的代理方法(所有在条件编译下设置,以便它们在发布的版本中消失).

COM对象(一个VB.NET类)实际上有一个对真实加载项实例的引用,但我尝试将其返回给NUnit,我得到了一个很好的p/Invoke错误:

System.Runtime.Remoting.RemotingException:此远程处理代理没有通道接收器,这意味着服务器没有正在侦听的已注册服务器通道,或者此应用程序没有合适的客户端通道与服务器通信.在System.Runtime.Remoting.Proxies.RemotingProxy.InternalInvoke(IMethodCallMessage reqMcmMsg,布尔useDispatchMessage,的Int32 CALLTYPE)在System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(即时聊天reqMsg)在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData&msgData,Int32类型)

我尝试使主加载项COM可见并且错误更改:

System.InvalidOperationException:由于对象的当前状态,操作无效.at System.RuntimeType.ForwardCallToInvokeMember(String memberName,BindingFlags flags,Object target,Int32 [] aWrapperTypes,MessageData&msgData)

虽然我有一个解决方法,它很混乱并且在实际项目中放置了大量测试代码而不是测试项目 - 这实际上并不是NUnit的工作方式.

vb.net add-in ms-office

6
推荐指数
1
解决办法
2212
查看次数

如何在VB6中重新初始化UDT?

我有一个循环,它读取每个XML文件的堆栈,它验证XML中的数据并将其加载到某些UDT中,然后对数据进行一些处理.

然后它返回到循环的开头,UDT仍然具有来自先前XML的数据.如果该标记在新标记中定义,则会覆盖,但如果未定义该标记,则UDT中的该元素将保持不变.

但我无法通过我用于变量(Let X = 0)的技术重置UDT,除非我遍历UDT的每个元素并重置该值.做它object-style(Set X as New UDT)不起作用.

我该怎么做?

vb6 user-defined-types

6
推荐指数
1
解决办法
955
查看次数

标签 统计

vb.net ×2

add-in ×1

asp.net ×1

ms-office ×1

user-defined-types ×1

vb6 ×1