我如何从Swing应用程序获取Windows用户凭据?
我正在研究内部(公司)Swing应用程序.目前,用户必须使用登录屏幕登录应用程序,登录屏幕然后连接到应用服务器,该服务器根据公司LDAP服务器对用户进行身份验证.
由于用户已使用相同的凭据登录到他的工作站,因此Swing应用程序是否可以从Windows本身获取这些凭据,然后自动将用户登录到(SSO)?我知道这是可能的,因为我已经看到其他一些应用程序这样做,但我不知道如何使用Swing/Java来做这件事.
我正在使用Hibernate Annotations.
在我的所有模型类中,我都这样注释:
@Entity
@Table
public class SomeModelClass {
//
}
Run Code Online (Sandbox Code Playgroud)
我的hibernate.cfg.xml是
<hibernate-configuration>
<session-factory>
<!-- some properties -->
<mapping package="com.fooPackage" />
<mapping class="com.fooPackage.SomeModelClass" />
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
对于我添加到com.fooPackage的每个类,我必须在hibernate.cfg.xml中添加一行,如下所示:
<mapping class="com.fooPackage.AnotherModelClass" />
Run Code Online (Sandbox Code Playgroud)
有没有办法我可以添加新的模型类,但不需要将此行添加到hibernate.cfg.xml?
我想知道如何在bison + flex中将缩进实现为块分隔符.就像在python中一样.我正在编写自己的编程语言(主要是为了好玩,但我打算将它与游戏引擎一起使用),我将尝试提出一些特殊的东西,以最小化样板并最大化开发速度.
我已经在C中编写了一个编译器(实际上是一个'langToy'到Nasm翻译器)但是失败了.由于某种原因,它只能处理整个源文件中的一个字符串(好吧,我已经醒了超过48小时 - 所以...你知道,脑子崩溃了).
我不知道大括号和/或开始 - >结尾是否更容易实现(我没有问题)或者只是我的大脑锁定了.
提前致谢!
更新:好的,我不知道如何使用flex进行操作.将多个DEDENT返回给解析器时遇到问题.Flex/Bison对我来说相对较新.
更新2: 这是我到目前为止提出的flex文件; 它不太明白:
%x t
%option noyywrap
%{
int lineno = 0, ntab = 0, ltab = 0, dedent = 0;
%}
%%
<*>\n { ntab = 0; BEGIN(t); }
<t>\t { ++ntab; }
<t>. { int i; /* my compiler complains not c99 if i use for( int i=0... */
if( ntab > ltab )
printf("> indent >\n");
else if( ntab < ltab )
for( …Run Code Online (Sandbox Code Playgroud) 我注意到Visual Studio特有的一些东西.首先,尝试在函数中的某处键入此(C#):
class Foo
{
public void Bar()
{
string s;
int i = s.Length;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,马上将迎来s的s.Length是一个错误,说" Use of unassigned local variable 's'".另一方面,请尝试以下代码:
class Foo
{
private string s;
public void Bar()
{
int i = s.Length;
}
}
Run Code Online (Sandbox Code Playgroud)
它将编译,并s在private string s警告中强调中,并说" Field 'Foo.s' is never assigned to, and will always have its default value null".
现在,如果VS是那么聪明并且知道s将永远为null,为什么在第二个例子中得到它的长度不是错误?我最初的猜测是,"如果编译器根本无法完成其工作,它只会产生编译错误.由于代码在技术上运行只要你从不调用Bar(),它只是一个警告." 除非第一个例子使解释无效.只要你从不调用Bar(),你仍然可以毫无错误地运行代码.什么给出了什么?只是疏忽,还是我错过了什么?
c# compiler-construction nullreferenceexception visual-studio
我有一些代码,我想变成一个linq表达式(最好使用lambdas),以便更容易用作委托.代码如下所示:
List<DateTime[]> changes = new List<DateTime[]>();
changes = PopulateChanges();
for (int i = 0; i < changes.Count; i++)
{
for(int j = 0; j < changes[i].Length; j++)
{
changes[i][j] = DateTime.MinValue;
}
}
Run Code Online (Sandbox Code Playgroud)
对于我的生活,我似乎无法想象这一点.我尝试过使用ForEach和各种形式的选择等等.似乎没什么用.
仅供参考,我知道DateTime默认为MinValue,实际上这是在已经设置之后将数组清除为默认值.
任何人都可以用工作表达来帮助我吗?
编辑:
我想我在这里说的是我想要一种简洁的方法将多维数组的所有元素设置为给定值.当然,嵌套的for循环可以工作,我当然可以把它放在一个函数中(我已经完成了).我只想要一些更简洁的东西,可以更容易地在代表中使用,而无需创建多行怪物.
我试图调用一个接受LPTSTR作为参数的函数.我用字符串文字调用它,就像在foo("bar")中一样;
我得到一个错误,我"无法将参数1从'const char [3]'转换为'LPTSTR'",但我不知道为什么或如何修复它.任何帮助都会很棒.
这个陈述是真实的,错误的还是制定不当的:
"在Java中,内存泄漏必须始终以某种方式与长期存在的对象相关联."
在这种情况下,我只是指常规对象,而不是一般的系统资源(文件描述符等).
长寿命对象的一个示例可能是单例(通常以任何速率实现),只要应用程序正在运行,它就会存在.
我的一些部分.vimrc看起来像这样:
autocmd Filetype ruby setlocal ts=2
autocmd Filetype ruby setlocal sts=2
autocmd Filetype ruby setlocal sw=2
Run Code Online (Sandbox Code Playgroud)
现在看来我可以把它们转换成这个:
autocmd Filetype ruby setlocal ts=2 sts=2 sw=2
Run Code Online (Sandbox Code Playgroud)
但这是我的问题:有没有像这样的结构的vim方式?
<something mentioning Filetype ruby>
setlocal ts=2
setlocal sts=2
...
<end>
Run Code Online (Sandbox Code Playgroud)
也就是说,autocmd Filetype某种程度上可以用来解决一组行动?(这是一个简单的例子,我真的要求更复杂的情况.)
默认情况下,每当我加载一个表时,phpMyAdmin就会显示30行(查询包含"LIMIT 30").我通常希望看到(最多)几百行.
有没有办法更改默认设置?
我正在寻找一个Visual Studio 2008加载项或宏,它将检查所有.cs文件并报告"代码注释覆盖率".我们公司的标准是所有C#类,方法和属性都是代码注释.我有一个很大的解决方案,手工浏览文件浪费了很多时间.如果我有一份报告告诉我哪些文件具有代码注释以及哪些文件没有,我可以检查这些文件.
我不介意写一些代码来完成这个,但我不想重新发明轮子.是否有加载项或宏来执行此操作?如果失败了,有没有办法使用反射或System.CodeDom命名空间来检查类的代码注释?如果我可以将我的类加载到对象模型中,我可能会在那里完成剩下的工作.
c# ×3
java ×3
bison ×1
c++ ×1
flex-lexer ×1
hibernate ×1
lambda ×1
linq ×1
memory-leaks ×1
mysql ×1
php ×1
phpmyadmin ×1
swing ×1
vim ×1
windows ×1