小编Mar*_*ica的帖子

触发器与JPA @PrePersist创建和更新时间戳的优缺点

我正在构建一个新的Web应用程序,我正在使用Spring,JPA/Hibernate和Postgres.我的一些表有creation_ts和lastupdate_ts列,这些列是时间戳列,用于跟踪插入发生的时间以及行上次更新的时间.

我也在我的表中使用列的命名约定,因此在设计策略方面,每个表都保证有两列pkey,它是一个整数代理键,以及用于乐观锁定的版本.

我有两种方法可以使这些字段保持最新状态.

选项A:使用触发器

这是我现在已经采用的解决方案,我有两个Postgres触发器,可以触发插入和更新,并使这些字段保持最新.我有两节课.

@MappedSuperclass
public abstract class PersistableObject
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="pkey")
    private Integer pkey;

    @Version
    @Column(name="version")
    private Integer version;

    public Integer getPkey()
    {
        return this.pkey;
    }

    public Integer getVersion()
    {
        return this.version;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有

@MappedSuperclass
public class TimeStampedPersistableObject extends PersistableObject {

    @Column(name = "creation_ts")
    @Temporal(TemporalType.DATE)
    @org.hibernate.annotations.Generated(value = GenerationTime.INSERT)
    private Date    creationTimestamp;

    @Column(name = "update_ts")
    @Temporal(TemporalType.DATE)
    @org.hibernate.annotations.Generated(value = GenerationTime.ALWAYS)
    private Date    updateTimestamp;

    public Date getCreationTimestamp()
    {
        return this.creationTimestamp;
    }

    public Date getUpdateTimestamp()
    {
        return this.updateTimestamp; …
Run Code Online (Sandbox Code Playgroud)

java postgresql hibernate jpa jpa-2.0

9
推荐指数
1
解决办法
7287
查看次数

使用PowerShell创建ISO映像:如何将IStream保存到文件?

我想在Windows上创建一个ISO映像,即.iso文件.这可以使用COM组件IMAPI2FS.MsftFileSystemImage,我在MSDN博客文章"在PowerShell中使用IMAPI 2编写光盘"中找到了如何使用PowerShell执行此操作的说明.

在第3步之后,这些指令说"在这一步你可以停止并将结果图像保存到本地硬盘,这将是一个纯粹的ISO图像."

我的问题:如何在PowerShell中获取$ resultStream,即检索ImageStream的COM对象,并将其内容保存到文件中?

com powershell imapi iso-image

8
推荐指数
1
解决办法
1万
查看次数

如何在Haskell中添加/减去绝对值和相对值的运算符

(对于奇怪的标题表示道歉,但我想不出更好的标题.)

对于个人Haskell项目,我希望得到"绝对值"(如频率)和相对值(如两个频率之间的比率)的概念.在我的上下文中,添加两个绝对值是没有意义的:一个可以添加相对值以产生新的相对值,并将相对值添加到绝对值以产生新的绝对值(同样对于减法).

我为这些定义了类型类:见下文.但是,请注意操作符##+#+具有类似结构(同样适用于##-#-).因此,我更愿意合并这些运算符,以便我有一个加法运算符,它添加一个相对值(同样是一个减法运算符,它会产生一个相对值). 更新:为了澄清,我的目标是统一我##+#+一个单一的运营商.我的目标不是将它与existing(Num)+运算符统一起来.

但是,我不知道如何使用类型类来执行此操作.

问题:可以这样做,如果是,怎么做?或者我不应该尝试?

以下是我目前的情况:

{-# LANGUAGE MultiParamTypeClasses #-}

class Abs a where
  nullPoint :: a

class Rel r where
  zero :: r
  (##+) :: r -> r -> r
  neg :: r -> r

  (##-) :: Rel r => r -> r -> r
  r ##- s = r ##+ neg s

class (Abs a, Rel r) …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass

8
推荐指数
3
解决办法
283
查看次数

如何在非英语Windows上为服务帐户创建SQL Server登录?

给定Windows Server 2008 R2系统,其中服务帐户使用非英语显示语言,使用SQL Server 2008,以下Transact-SQL语句失败:

CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS ...
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

未找到Windows NT用户或组"NT AUTHORITY\NETWORK SERVICE".再次检查名称.

(或服务帐户的非英语显示语言中的相同消息,具体取决于上下文).

如果服务帐户使用英语作为其显示语言,则相同的语句会成功.

原因似乎很清楚:例如,在德国系统中,此帐户的显示名称是NT-AUTORITÄT\NETZWERKDIENST,并且名称NT AUTHORITY\NETWORK SERVICE(带空格)无法识别.此外,非本地化名称NT AUTHORITY\NETWORKSERVICE(无空格)也不起作用.

我的问题:我应该如何重写上述声明,使其无论显示语言如何都能正常工作?或者我被迫找出本地化名称(在我的情况下是InstallScript)?然后我就可以用了

CREATE LOGIN [NT-AUTORITÄT\NETZWERKDIENST] FROM WINDOWS
Run Code Online (Sandbox Code Playgroud)

哪个确实有用......

t-sql sql-server locale windows-server-2008-r2

7
推荐指数
2
解决办法
9538
查看次数

WCF RESTful服务的基于声明的身份验证

我一直在研究各种样本,试图为ASP.Net Web服务和WCF RESTful Web服务拼凑基于SAML令牌的身份验证解决方案......我参考过的一些示例:

我一直在与每个障碍作斗争,我很亲密,我可以品尝它.给我的最新一块是:

如果我用的是普通WebServiceHostFactory,定制的授权策略被应用,并且结束Thread.CurrentPrincipal中最多的,取值为我的HTTP模块集HttpContext.Current.User ...但是...如果我使用WebServiceHost2Factory(即从REST入门工具包),以获得自动求助终点,等等,然后将已授权政策没有应用,并且Thread.CurrentPrincipal中最终被以任何方式有关ClaimsPrincipal我在设置RoleProviderPrincipal的实例的HttpModule ..: - (

有任何想法,想法如何让WebServiceHost2Factory与自定义/重写主体发挥良好作用?

谢谢,

泰勒

rest wcf saml principal

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

未关闭"扩展保护"的非IE浏览器对AD FS进行NTLM身份验证?

使用NTLM身份验证到AD FS 2.0,从运行在Windows上的Google Chrome或Firefox 3.5+时,会导致重复登录对话框并最终导致登录失败,"审核失败"事件的状态为"状态:0xc000035b".

这可以通过关闭IIS中"/ adfs/ls"Web应用程序的"扩展保护"来"解决".这在几个地方有记录; 有关详细信息,请参阅我对另一个StackOverflow问题的回答.

我的问题是:如何在关闭"扩展保护"的情况下,为这些浏览器对AD FS进行NTLM身份验证?我的意思是,在Internet Explorer中,这可以正常使用"扩展保护",为什么不使用Chrome或Firefox?或者这是Chrome/Firefox实施错误/限制,例如,他们使用Windows NTLM库?

更新:我应该提到我想这样做而不强迫人们在浏览器设置中进行更改.

firefox ntlm google-chrome adfs adfs2.0

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

PowerShell:如何将COM对象转换为.NET互操作类型?

如我的问题中所述使用PowerShell创建ISO映像:如何将IStream保存到文件?,在PowerShell中我创建一个IStream对象如下:

$is = (New-Object -ComObject IMAPI2FS.MsftFileSystemImage).CreateResultImage().ImageStream
Run Code Online (Sandbox Code Playgroud)

此对象是(PowerShell)类型System.__ComObject.不知怎的,PowerShell知道它是IStream:

PS C:\> $is -is [System.Runtime.InteropServices.ComTypes.IConnectionPoint]
False
PS C:\> $is -is [System.Runtime.InteropServices.ComTypes.IStream]
True
Run Code Online (Sandbox Code Playgroud)

但是,此类型的强制转换失败:

PS C:\> [System.Runtime.InteropServices.ComTypes.IStream] $is
Cannot convert the "System.__ComObject" value of type "System.__ComObject" to type "System.Runtime.InteropServices.ComT
ypes.IStream".
At line:1 char:54
+ [System.Runtime.InteropServices.ComTypes.IStream] $is <<<<
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException
Run Code Online (Sandbox Code Playgroud)

如何在不使用C#代码的情况下进行此转换?

更新:显然这种转换无法正常工作,正如x0n的回答所说的那样.

现在,我的目标是将此IStreamCOM对象传递给某些C#代码(使用相同的PowerShell脚本的一部分Add-Type),它将成为类型的.NET对象System.Runtime.InteropServices.ComTypes.IStream.那可能吗?如果没有,我有什么替代品?

com powershell com-interop powershell-2.0 imapi

6
推荐指数
2
解决办法
2890
查看次数

什么是Windows Server 2012命令行等效于`aspnet_regiis -ir`?

正如几个问题中所述(Windows Server 2012上注册ASP.NET 4.5的替代方案 ; Server 2012 IIS 8 MVC应用程序显示默认的IIS主页或403/404 错误 ; IIS8上的WCF;*.svc处理程序映射不起作用) ,在Windows Service 2012上,该aspnet_regiis -ir命令不再起作用,而是产生以下输出:

此版本的操作系统不支持此选项.管理员应该使用"打开/关闭Windows功能"对话框,服务器管理器管理工具或dism.exe命令行工具,使用IIS8安装/卸载ASP.NET 4.5.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=216771.

在我们的例子中,我们只想运行此命令来重新注册ASP.NET 4.5,因为其他一些安装未注册它:已经安装了ASP.NET 4.5.

使用受引用帖子启发的UI(添加/删除角色/功能),我发现删除WCF的HTTP激活功能然后再次添加就足够了.(但我需要卸载/重新安装恰好依赖于WCF HTTP激活的功能......)

问题:如何通过Windows Server 2012上的命令行完成同样的事情?

(我看着这个dism.exe东西,但它看起来令人生畏,并dism.exe -?没有帮助我.)

谢谢!

asp.net asp.net-4.5 iis-8 windows-server-2012

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

如何在Lilypond中缩写"用相同音符加注八度音符,用括号括号"的音符?

目前我写的代码看起来像这样:

\version "2.14.2"

P = #parenthesize

\relative c, {
  \clef bass 
    <c \P c'> <e \P e'> <g \P g'>2 <c, \P c'>4 <d \P d'> <e \P e'>2
}
Run Code Online (Sandbox Code Playgroud)

我一再表示' 这个音符,同一个音符高一个八度,括号'.

我想要一种缩写的方法,这样我就可以这样写:

\version "2.14.2"

poct = ...

\relative c, {
  \clef bass 
  \poct c \poct e \poct g2 \poct c,4 \poct d \poct e2
}
Run Code Online (Sandbox Code Playgroud)

正如对我之前的一个问题的有用回答所建议的那样,我试图使用音乐功能,但我无法让它发挥作用.我能得到的最接近的是

poct = #(define-music-function
     (parser location note)
     (ly:music?)
   #{
     << $note \transpose c c \parenthesize …
Run Code Online (Sandbox Code Playgroud)

scheme guile lilypond music-notation

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

如何在 .NET Web 应用程序中为经过身份验证的用户获取 UPN,而不查询 Active Directory

(这个问题类似于Get UPN or email for login user in a .NET web application,但不完全相同。)

在使用 Windows 身份验证的 .NET (C#) Web 应用程序中,我想找到登录用户的 UPN。

我知道如何通过查询 Active Directory 来做到这一点:从HttpContext.Current.User.Identity as WindowsIdentity;获取 'DOMAINNAME\userName' 在 下查找 DOMAINNAMEldap://RootDSE并找到它dnsRoot;查询(&(objectCategory=person)(objectClass=user)(sAMAccountName=...userName...))ldap://...dnsRoot...;获取此条目的userPrincipalName属性。(更多细节在回答/sf/answers/35956791/ 中)。

我的问题:是否可以在调用 Active Directory 的情况下找到 UPN ?鉴于 Microsoft 专注于在任何地方使用 UPN,UPN 是不是已经存储在用户向 Web 服务器进行身份验证时创建的令牌中的某处?

(支持观察:如果我whoami /upn在 Windows 7 上运行,那么 Wireshark 不会显示任何 Active Directory 连接。)

(如果有什么不同:请注意,我们的 Web 应用程序不使用 …

.net active-directory upn

5
推荐指数
2
解决办法
9825
查看次数