我有一个使用Windows身份验证的SQL Server 2005命名实例,其中域组用作登录.域结构如下:
Forest1 Forest2
/ \ |
Domain1 Domain2 Domain3
Run Code Online (Sandbox Code Playgroud)
对象在以下域中组织:
Forest1.Domain1
Forest1.Domain2
Forest2.Domain3
我的所有用户都存在Domain1,Domain3但SQL Server框中存在Domain2.因此,我的登录名是域组Domain2.当用户in Domain1添加到域本地组Domain2并尝试使用TCP/IP协议连接到SQL Server实例时,他收到以下错误消息:
无法连接到<instance>.用户'Domain1\userName'登录失败.(Microsoft SQL Server,错误:18456)
我试过的其他事情:
如果我明确地将用户添加为登录,他可以连接.
如果我Domain1明确地添加用户作为成员的全局组,则可以连接.
如果我添加一个Domain1用户所属的Domain2全局组作为用作登录的域本地组的成员,则无法连接.
编辑:如果我将Domain2域本地组添加到Domain2托管SQL Server实例的服务器上的Demote Desktop Users组,Domain1用户可以成功连接到服务器 - 我也可以作为Domain1用户本地连接到该实例(只是不远程).
编辑:如果我将Domain2域本地组添加到本地服务器组并为该本地服务器组创建SQL Server登录,则Domain1用户仍然无法远程连接到该实例.
编辑:如果我将连接网络协议更改为"命名管道",则Domain1用户可以成功远程连接.
sql-server sql-server-2005 windows-authentication cross-domain
我想在a中按下ENTER时调用一个命令TextBox.考虑以下XAML:
<UserControl
...
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
...>
...
<TextBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyUp">
<i:InvokeCommandAction Command="{Binding MyCommand}"
CommandParameter="{Binding Text}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
...
</UserControl>
Run Code Online (Sandbox Code Playgroud)
并且MyCommand如下:
public ICommand MyCommand {
get { return new DelegateCommand<string>(MyCommandExecute); }
}
private void MyCommandExecute(string s) { ... }
Run Code Online (Sandbox Code Playgroud)
使用上面的命令,我会在每次按键时调用我的命令.如何将命令限制为仅在按下ENTER键时调用?
我理解使用Expression Blend我可以使用条件,但这些似乎仅限于元素,不能考虑事件参数.
我也遇到过SLEX,它提供了自己的InvokeCommandAction实现,它构建在Systems.Windows.Interactivity实现之上,可以满足我的需求.另一个考虑是编写我自己的触发器,但我希望有一种方法可以在不使用外部工具包的情况下完成.