如何在自定义代码中使用LS数据源
public class UserDomainService : DomainService
{
[Query(IsDefault=true)]
public IEnumerable<User> GetUsers()
{
try
{
IDataWorkspace dw =
ApplicationProvider.Current.CreateDataWorkspace();
var users = dw.SecurityData.UserRegistrations.GetQuery().Execute();
return users.Select(p => new User() { UserName = p.UserName }).ToList();
}
catch (Exception ex)
{
return null;
}
}
}
public class User
{
[Key]
public string UserName { get; set; }
}
在自定义控件中使用数据源,必需使用Application.Current.Details.Dispatcher
LightSwitchApplication.Application.Current.Details.Dispatcher.BeginInvoke(() =>
{
LightSwitchApplication.DataWorkspace workspace = LightSwitchApplication.Application.Current.CreateDataWorkspace();
var cs = workspace.MyTeamInfoData.Deptments.GetQuery().Execute();
LS与asp.net 单点登录集成方法
http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/107/Integrating-LightSwitch-Into-An-ASPNET-Application-To-Provide-Single-Sign-On.aspx
A. Asp.net设定如下
1. 使用asp.net membership provider
2. 创建membership provider tables ,并在web.config中指向正确的库
3. Web.config文件中设定application name
4. Web.config文件中设定Machine Key
5. Web.config文件中设定Forms Name
6. Web.config文件中添加Profile属性FullName
B. LS中设定如下
1. LS使用Forms Authentication方法
2. 创建一个新的连接字符串指向asp.net中使用的连接
3. Web.config文件中设定application name(同asp.net)
4. Web.config文件中设定Machine Key(同asp.net)
5. Web.config文件中设定Forms Name(同asp.net)
public void CallHyperLink(string navigateUri)
{
Microsoft.LightSwitch.Threading.Dispatchers.Main.BeginInvoke(() =>
{
if (AutomationFactory.IsAvailable)
{
dynamic shell = AutomationFactory.CreateObject("Shell.Application");
shell.ShellExecute(navigateUri.ToString());
}
else if (!System.Windows.Application.Current.IsRunningOutOfBrowser)
{
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(navigateUri) , "_blank");
}
else
{
throw new InvalidOperationException();
}
});
}
如何打开一个连接