在.NET 3.5 Winforms应用程序中,在用户提供用户名和密码后,我在CurrentPrincipal属性中设置了一个自定义主体,如下所示:
My.User.CurrentPrincipal = Service.GetPrincipal(username)
Run Code Online (Sandbox Code Playgroud)
这是在使用Invoke调用的方法中完成的,因为原始线程不是UI线程:
Invoke(New Action(AddressOf doLogin))
Run Code Online (Sandbox Code Playgroud)
但是,当我单击Winforms应用程序中的按钮时,CurrentPrincipal属性已恢复为其默认值,即当前Windows用户.
Dim lPrincipal = My.User.CurrentPrincipal ' not my custom principal
Run Code Online (Sandbox Code Playgroud)
显然,在设置主体时使用Invoke并不能解决问题.是否有另一种方法为CurrentPrincipal应用程序中的所有线程设置属性?
源代码重现问题:
Imports System.Security.Principal
Imports System.Threading
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim lThread As New Thread(AddressOf doLogin)
lThread.Start()
End Sub
Private Sub doLogin()
Invoke(New Action(AddressOf setPrincipal))
End Sub
Private Sub setPrincipal()
My.User.CurrentPrincipal = New CustomPrincipal
MsgBox(My.User.CurrentPrincipal.Identity.AuthenticationType) ' Custom
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, …Run Code Online (Sandbox Code Playgroud) 我在为我@ActionMapping创建一个PDF文件.现在我想知道如何以保存/打开文件对话框的形式将这个pdf返回给用户?如果这一代人成功的话,我更喜欢这个显示下载链接.
我将spring-mvc 3.0.5与portlet结合使用.但是,如果有人有一些正常应用程序的指针,那么我可以从那里弄清楚.对于2.0,我读了一些关于扩展pdfgenerator类并在web.xml中进行修改的内容但是从现在开始我们只需要POJO ....
编辑:Adeel建议后的代码:
File file = new File("C:\\test.pdf");
response.setContentType("application/pdf");
try {
byte[] b = new byte[(int) file.length()];
OutputStream out = response.getPortletOutputStream();
out.write(new FileInputStream(file).read(b));
out.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "users/main";
Run Code Online (Sandbox Code Playgroud) 我正在Android上开发,但问题可能在任何其他Java平台上都同样有效.
我开发了一个多线程应用程序.假设我有一个需要执行时间密集型任务的第一类,因此这项工作在另一个Thread中完成.完成后,相同的Thread会将时间密集型任务结果返回给另一个(第3个)类.
最后一个类将执行某些操作并将其结果返回到第一个启动类.我注意到虽然第一堂课将一直等待,也许是因为这是某种循环?
另外我想让Thread-class停止运行,就像它将结果传递给第三类时它应该停止一样.第三类必须在没有被"封装"在第二类(线程一)的情况下完成它的工作.谁知道怎么做到这一点?
现在的经验是,第一个似乎在等待(悬挂)直到第二个和第三个完成:(
python专家可以向我解释以下输出吗?
def modify_dict(exclude_params):
exclude_params["domain_url"] = set()
def g(exclude_params={}):
print id(exclude_params)
print exclude_params
modify_dict(exclude_params)
print exclude_params
return None
>>> g()
23191104
{}
{'domain_url': set([])}
>>> g()
23191104
{'domain_url': set([])}
{'domain_url': set([])}
>>>
Run Code Online (Sandbox Code Playgroud)
我g在两个调用中都没有传递任何参数,因此exclude_params应该将局部变量初始化为{}.但在第二次电话会议上,事实并非如此.
更奇怪的是,局部变量的地址在两个单独的调用中是相同的.那么旧的局部变量是重用的?? !!!
有没有办法列出Emacs中所有被拉动的文本?你可以用Text SPLAT+ 在Textmate上完成V.
编辑:我的意思是最近被杀的物品,可以被猛拉的物品.
如果我们volatile每次更新新值时
声明一个变量如果我们声明一个变量,const那么该变量的值将不会被更改
那么如上所述const volatile int temp;
声明变量temp有什么用?
如果我们宣布为什么会发生什么const int temp?
MD5校验和广泛用于Http下载大文件的完整性检查.我的问题是,因为TCP本身提供了可靠的机制(即每个TCP包的校验和以确保其完整性).因此,简而言之,TCP是可靠的.Http基于TCP(因此Http也应该是可靠的),那么为什么我们需要另一种完整性检查机制(即MD5校验和)?
乔治,提前谢谢
我必须做一个废弃大约100个URL的Scraper,Scraper必须在CronJob调用的PHP CLI中运行.我完全迷失了如何管理这个...对于我想要创建一个新文件的每个URL,只是为了在必须更新特定URL的代码时弄清楚.
这可能是个不错的选择吗?然后,可以从一个CronJob调用所有这些文件?
我编写了自己的自定义后合并钩子,现在我在我的主项目文件夹中添加了一个"hooks"目录(因为git不跟踪.git/hooks中的更改),在某处我读到我可以从钩子中创建一个符号链接到.git/hooks所以每次有人更改时我都不必将文件从一个文件夹复制到另一个文件夹,所以我尝试了:
ln -s -f hooks/post-merge .git/hooks/post-merge
但它似乎没有用,任何想法为什么?"ln hooks/post-merge .git/hooks/post-merge"工作正常,但制作一个硬链接就像copyin一样我猜....
我在ubuntu9.10和8.10服务器上使用tomcat6和mod_jk设置(都在端口80上运行).我在/ usr/share/tomcat/webapps下部署war文件.在部署期间,当我重新启动tomcat时,在浏览器上访问tomcat应用程序时,我将获得以下页面:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/2.2.11 (Ubuntu) mod_jk/1.2.15 Server at 192.168.2.54 Port 80
Run Code Online (Sandbox Code Playgroud)
在tomcat服务器关闭时,如何将此页面重定向到其他自创建的维护页面?