我有一个类需要知道当前有效的用户名.Environment.UserName或是WindowsIdentity.GetCurrent().Name为了那个.但是当启用模拟时,它们返回的LocalUser名称不是ImpersonatedUser名称.
如何获取当前模拟用户的姓名?
该应用程序是C#控制台应用程序,我知道模仿是有效的,因为我获得了特权ImpersonatedUser.当然,我可以使用模拟代码将模拟的用户名保存到某个全局变量,但这样做是错误的.
更新:
模拟代码:
if (LogonUser(userName, domain, password, LOGON32_LOGON_NEW_CREDENTIALS/*=9*/, LOGON32_PROVIDER_DEFAULT, ref token) != 0)
{
if (DuplicateToken(token, 2, ref tokenDuplicate) != 0)
{
WindowsIdentity tempWindowsIdentity = new WindowsIdentity(tokenDuplicate);
_impersonationContext = tempWindowsIdentity.Impersonate();
// WindowsIdentity.GetCurrent().Name equals "LocalUser"
// while userName equals "ImpersonatedUser"
...
Run Code Online (Sandbox Code Playgroud)
我可以控制模拟代码,但我更愿意将其与解决方案的其他部分保持独立.
Hi all,
Run Code Online (Sandbox Code Playgroud)
我正在调试一个设备驱动程序,我得到一个内核恐慌.检查回溯或错误日志后,似乎问题出在kmalloc上.我想也许我可以用其他分配函数改变kmalloc.他们有什么不同?
这是错误日志:
Unable to handle kernel NULL pointer dereference at virtual address 0000000d
pgd = c7bdc000
[0000000d] *pgd=4785f031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT
Modules linked in: bcm5892_secdom_fw(P) bcm5892_lcd snd_bcm5892 msr bcm5892_sci bcm589x_ohci_p12 bcm5892_skeypad hx_decoder(P) pinnacle hx_memalloc(P) bcm_udc_dwc scsi_mod g_serial sd_mod usb_storage
CPU: 0 Tainted: P (2.6.27.39-WR3.0.2ax_standard #1)
PC is at __kmalloc+0x70/0xdc
LR is at __kmalloc+0x48/0xdc
pc : [<c0098cc8>] lr : [<c0098ca0>] psr: 20000093
sp : c7a9fd50 ip : c03a4378 fp : c7a9fd7c
r10: bf0708b4 r9 …Run Code Online (Sandbox Code Playgroud) 在Effective C++中,据说初始化列表中的数据元素需要按其声明的顺序列出.进一步说,对此的推理是数据元素的析构函数以其构造函数的相反顺序被调用.
但我只是看不出这可能是个问题......
在阅读Git pre-commit hook:更改/添加文件后,出现以下问题:
鉴于我有一个包含分阶段和非分阶段更改的文件,如何在分段后显示文件内容的预览?
例:
echo "foo" >> file
git add file
echo "bar" >> file
Run Code Online (Sandbox Code Playgroud)
通缉输出:
[previous contents of file]
foo
Run Code Online (Sandbox Code Playgroud) 当我们使用模拟器并将文件存储在隔离存储中时.文件实际存储在计算机上的哪个位置?我的意思是路径.
我正在尝试使用http://crossgcc.rts-software.org/doku.php?id=i386linuxgccformac中的文件进行交叉编译
我在Intel Mac(10.6.6,x86_64)我编译:gmp,mpfr,mpc为交叉编译器为32bit(因为我在64位Mac上)但我得到了
ld: warning: option -s is obsolete and being ignored
ld: warning: ignoring file /gmp1/lib/libmpc.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file /gmp1/lib/libmpfr.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file /gmp1/lib/libgmp.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Run Code Online (Sandbox Code Playgroud)
在编译GCC时:
--prefix=/usr/local/i386-linux-4.5.2 --target=i386-linux --enable-languages=c --without-headers --disable-shared …Run Code Online (Sandbox Code Playgroud) 有没有办法比较两个文本文件,并显示差异,如果他们在dunit不相同?
简单的开始是将它们读取到TStringList,但是用于比较两个文本文件的代码要复杂得多,而且DUnitGui中的gui对此不够.
任何的想法?建议?
我正在尝试使用preg_match()使用PHP验证DD/MM/YYYY等日期.这是我的REGEX表达式的样子:
$pattern = "/^([123]0|[012][1-9]|31)/(0[1-9]|1[012])/(19[0-9]{2}|2[0-9]{3})$/";
Run Code Online (Sandbox Code Playgroud)
但是使用正确的值,我得到这样的信息:
preg_match():未知的修饰符'('
完整代码:
$pattern = "/^([123]0|[012][1-9]|31)/(0[1-9]|1[012])/(19[0-9]{2}|2[0-9]{3})$/";
$date = "01/03/2011";
if(preg_match($pattern, $date)) return TRUE;
Run Code Online (Sandbox Code Playgroud)
先感谢您
我试图序列化HttpSession对象并得到以下例外
java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
at com.tps.Session.saveSession(Session.java:16)
at org.apache.jsp.setSession_jsp._jspService(setSession_jsp.java:56)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Run Code Online (Sandbox Code Playgroud)